小程序构建npm失败
- 项目工程结构说明
- 解决方法
- 引入依赖导致的其他问题
今天在初始化后的小程序中引入TDesign组件库,构建npm时报错。
项目工程结构说明
初始化后的项目中,包含miniprogram文件夹和一些项目配置文件,在project.config.json文件中定义了小程序的Root目录,npm构建就是在这个miniprogramRoot中执行的。
解决方法
package.json定义了项目的包依赖信息,npm构建的路径中必须要包含该文件,由于初始化的项目中,miniprogram路径下没有package.json,导致构建失败。解决方法是复制package.json到该目录,或者直接在miniprogram目录下执行npm init,该命令会创建package.json。在miniprogram目录下的package.json中定义需要引入的依赖。
为了保证构建之后,小程序能够正确引用导入的依赖,就需要确保npm构建时,依赖被打包到miniprogram目录下的miniprogram_npm路径下。所以还需要在project.config.json中做如下配置:
{
"setting":{
...
"packNpmRelationList": [
{
"packageJsonPath": "./miniprogram/package.json", // 指定npm构建所用到的package.json的位置
"miniprogramNpmDistDir": "./miniprogram/miniprogram_npm"// 指定npm构建的输出路径
}
],
...
}
}
此时执行npm构建,就会看到依赖已经被打包进来了:
引入依赖导致的其他问题
npm是node的包管理工具,Node.js 使用的是 CommonJS 模块系统 (require / module.exports),而不是 ES 模块 (import / export),所以导入后的依赖会报错。需要将JS编译成ES