使用vue-cli打包typescript库时遇到的问题记录

1.在使用vue-cli 3.x打包ts代码为库时,发现不能生成.d.ts声明文件(已在tsconfig.json中指定declaration为true)
经过搜索发现这个issue
改造vue.config.js文件的部分配置如下即可生成.d.ts文件

使用vue-cli打包typescript库时遇到的问题记录_第1张图片
image.png
使用vue-cli打包typescript库时遇到的问题记录_第2张图片
image.png

2.因业务需要,需要在npm库的代码中获取到上层项目代码中webpack注入的process.env环境变量,但是在vue-cli中打包会导致库的代码中也会将process.env变量转为npm库项目中的环境变量文件,于是将vue-cli中默认的webpackDefinePlugin做删除,启动项目后process.env.XXX变量已经是undefine了,但是process.env还是会被编译成一个空对象,经过搜索和排查发现webpack 4.x会在项目中自动将前端代码中的process.env做替换,于是将webpack构建目标改为node,打包后会发现触发了vue-loader将.vue文件的运行环境识别为SSR,会有报错,将vue-loader的optimizeSSR选项设为false即可

3.全局变量声明
示例

/// 

import Vue from 'vue'
import { IEnv } from './browser/interface';
declare global {
  namespace NodeJS { //在这里声明所需的环境变量类型,与 *@types/webpack-env/index.d.ts* 下的声明合并
    interface Process {
      env: {
        NODE_ENV: 'production'|'debug'|'development'
        APP_ID:string
      }
    }
  }
}

你可能感兴趣的:(使用vue-cli打包typescript库时遇到的问题记录)