微信小程序中使用 npm 安装依赖

可以查看 小程序npm官方文档
安装依赖的前提,需要生成一个package.json文件,在小程序 package.json 所在的目录中执行命令安装 npm 包

npm install

然后一路回车即可生成:
在这里插入图片描述
然后可以看到package.json已经生成了
在这里插入图片描述
初始化后的package.json文件中不存在任何依赖,所以尝试执行 npm install 并不会有依赖安装成功
我们可以尝试安装一个vant-ui试试

npm i @vant/weapp -S --production

在这里插入图片描述
安装后出现了node_modules文件夹,package.json中也出现了相应的依赖项
在这里插入图片描述
安装完以后下一步需要进行构建

1. 微信开发者工具左上角:工具 — 构建npm (没有依赖时,点击构建是不会构建成功的,会提示没有可构建的项)

2. 构建的结果是:生成和 node_modules 同级目录的文件夹 miniprogram_npm

构建成功提示:
在这里插入图片描述
构建完成后依赖包即可正常使用

例如: 使用 vant/weapp 包中的 button 组件:
xxx.json

"usingComponents": {
  "van-button": "@vant/weapp/button"
},

xxx.wxml

<view class="usermotto">
  <van-button type="primary">demo</van-button>
  <van-button type="warning">警告按钮</van-button>
</view>

补充:为什么需要构建?官方阐述的原理:

首先 node_modules 目录不会参与编译、上传和打包中,所以小程序想要使用 npm 包必须走一遍 构建 npm 的过程,在每一份 miniprogramRoot 内开发者声明的 package.json 的最外层的 node_modules 的同级目录下会生成一个 miniprogram_npm 目录,里面会存放构建打包后的 npm 包,也就是小程序真正使用的 npm 包。

原文链接:https://blog.youkuaiyun.com/weixin_42289080/article/details/117334310

<think> 我们正在讨论的是在HBuilderX开发的微信小程序使用npm安装依赖的方法。用户之前遇到了路径解析问题,但当前问题转向了npm依赖安装。需要注意的是,HBuilderX开发微信小程序时,通常使用uni-app框架,而uni-app对npm的支持有特定要求。 核心解决方案: 1. 初始化npm项目:在项目根目录打开终端,执行`npm init -y`生成package.json。 2. 安装依赖使用`npm install [package]`安装所需包。 3. 关键步骤:必须在HBuilderX中执行“工具”->“构建npm”,将node_modules中的包编译到小程序可用的包。 4. 在代码中引入:使用CommonJS或ES6语法引入包,注意小程序不支持某些Node.js模块。 详细步骤: ### 1️⃣ 创建package.json 如果项目中没有package.json,先初始化: ```bash npm init -y ``` ### 2️⃣ 安装依赖 例如安装uview-ui(用户之前提到过): ```bash npm install uview-ui@2.0.36 ``` ### 3️⃣ 构建npm 这一步至关重要,因为小程序环境不能直接使用node_modules,需要构建成小程序支持的格式。 - 在HBuilderX菜单栏:点击“工具”->“构建npm” - 构建成功后,项目根目录会生成`unpackage/dist/build/mp-weixin`目录(针对微信小程序),里面会有`miniprogram_npm`目录,存放构建后的包。 ### 4️⃣ 引入组件/模块 以uview-ui为例,在页面中使用: ```json // 在页面json文件中 { "usingComponents": { "u-button": "uview-ui/components/u-button/u-button" } } ``` ### 5️⃣ 配置uni-app支持npm 在项目根目录创建`vue.config.js`(如果没有),并配置: ```javascript // vue.config.js module.exports = { transpileDependencies: ['uview-ui'] // 将需要编译的依赖包名加入数组 } ``` ### 6️⃣ 解决常见问题 - **问题1**:组件未找到 - 检查是否构建npm - 检查组件路径是否正确(构建后位于`miniprogram_npm`下) - 在微信开发者工具中,点击“工具”->“构建npm”(有时需要在微信开发者工具中再次构建) - **问题2**:依赖包未编译 - 在`vue.config.js`中配置`transpileDependencies`,确保依赖被babel转译 ### 7️⃣ 使用自定义组件 安装的组件库(如uview)通常需要全局引入。在`main.js`中: ```javascript import uView from 'uview-ui' Vue.use(uView) ``` ### 注意事项: 1. 小程序有包大小限制,注意控制依赖体积。 2. 不是所有npm包都可在小程序运行,需确保包是适用于小程序的(或通用JS包)。 3. 构建npm后,如果更新了依赖,需要重新构建。 ### 验证: 安装完成后,在页面中使用一个组件,例如: ```html <u-button>按钮</u-button> ``` 如果按钮正常显示,则说明安装成功。 ### 相关问题: 1. 如何在uni-app中引入第三方JS库? 2. 微信小程序如何优化npm包体积? 3. 为什么构建npm后还是找不到组件? 4. HBuilderX构建npm和微信开发者工具构建npm有什么区别? 引用说明:用户之前提到过使用pnpm安装uview后删除三个文件并重装的方法,但这里我们主要使用npm,因为HBuilderX官方推荐npm[^1]。同时,构建npm是uni-app框架的关键步骤[^2]。 </think> 以下是在 HBuilderX 开发的微信小程序使用 npm 安装依赖的完整方法指南: ### 一、基础安装流程 1. **初始化 npm 项目**(首次使用需执行): ```bash cd 项目根目录 npm init -y # 生成 package.json ``` 2. **安装依赖包**: ```bash npm install 包名 --save # 例如:npm install uview-ui ``` 3. **关键步骤:构建 npm**: 在 HBuilderX 顶部菜单: ```bash 工具 -> 构建npm ``` 构建成功后会在项目根目录生成 `unpackage/dist/build/mp-weixin/miniprogram_npm` 目录 4. **在页面中使用**: ```json // pages/index/index.json { "usingComponents": { "u-button": "uview-ui/components/u-button/u-button" } } ``` ```html <!-- pages/index/index.wxml --> <u-button>测试按钮</u-button> ``` ### 二、特殊配置要点 1. **vue.config.js 配置**(解决组件编译问题): ```javascript // 项目根目录/vue.config.js module.exports = { transpileDependencies: ['uview-ui'] // 添加需要编译的包名 } ``` 2. **解决组件未找到问题**: ```bash # 当组件未找到时执行 rm -rf unpackage node_modules package-lock.json npm install # 然后重新在 HBuilderX 执行 "工具->构建npm" ``` 3. **微信开发者工具配置**: 1. 在微信开发者工具中: ```bash 设置 -> 本地设置 -> 勾选 "使用npm模块" ``` 2. 点击菜单: ```bash 工具 -> 构建npm ``` ### 三、多平台兼容方案 ```javascript // 条件编译示例 // #ifdef MP-WEIXIN import weixinModule from 'weixin-specific-package' // #endif // #ifdef H5 import h5Module from 'h5-specific-package' // #endif ``` ### 四、最佳实践建议 1. **版本锁定**: ```bash npm install 包名@版本号 --save-exact # 例如:uview-ui@2.0.36 ``` 2. **目录结构规范**: ``` 项目根目录/ ├── node_modules/ ├── src/ ├── package.json ├── vue.config.js └── unpackage/ # 构建生成的目录 └── dist/build/mp-weixin/ └── miniprogram_npm/ # 小程序专用npm包 ``` 3. **自动构建脚本**: 在 package.json 中添加: ```json "scripts": { "build:mp-weixin": "npm install && hbuilderx-cli build --project 项目名 --platform mp-weixin" } ``` ### 五、常见问题解决 1. **组件未找到错误**: - 检查 `miniprogram_npm` 目录是否生成 - 确认微信开发者工具中执行过 `构建npm` - 检查组件路径大小写(Linux系统区分大小写) 2. **包体积过大优化**: ```javascript // vue.config.js module.exports = { configureWebpack: { optimization: { splitChunks: { chunks: 'all' } } } } ``` 3. **ES6 语法兼容**: 在项目根目录创建 `babel.config.js`: ```javascript module.exports = { presets: ['@babel/preset-env'] } ``` > 注意事项:HBuilderX 3.4.10+ 版本已优化 npm 支持,建议保持 IDE 最新版本[^1]。使用 npm 包时需注意小程序平台限制,某些 Node.js 特定模块不可用。 ### 相关问题 1. 如何解决 HBuilderX 构建 npm 后组件仍未识别的问题? 2. uni-app 中如何同时兼容小程序和 H5 的 npm 依赖? 3. 微信小程序使用 npm 包有哪些体积限制和优化策略? 4. 如何调试 HBuilderX 构建 npm 过程的错误日志?
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值