微信小程序使用npm引入三方包详解

目录

      • [1 前言](#1 前言)
      • [2 微信小程序npm环境搭建](#2 微信小程序npm环境搭建)
        • [2.1 创建package.json文件](#2.1 创建package.json文件)
        • [2.2 修改 project.config.json](#2.2 修改 project.config.json)
        • [2.3 修改project.private.config.json配置](#2.3 修改project.private.config.json配置)
        • [2.4 构建 npm 包](#2.4 构建 npm 包)
        • [2.5 typescript 支持](#2.5 typescript 支持)
        • [2.6 安装组件](#2.6 安装组件)
        • [2.7 引入使用组件](#2.7 引入使用组件)

1 前言

从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或以上开始,小程序支持使用 npm 安装第三方包。

此文档要求开发者们对 npm 有一定的了解,因此不会再去介绍 npm 的基本功能。如若之前未接触过 npm,请翻阅 官方 npm 文档 进行学习。

2 微信小程序npm环境搭建

2.1 创建package.json文件

目前新建的小程序项目都回有package.json文件,若没有该文件,直接在小程序项目根文件夹下,使用终端输入如下命令初始化环境:

shell 复制代码
npm init

注:使用该命令需要电脑安装好node环境;初次init直接一路回车即可

得到如下文件结构:

2.2 修改 project.config.json

开发者工具创建的项目,miniprogramRoot 默认为 miniprogrampackage.json 在其外部,npm 构建无法正常工作。

需要手动在 project.config.json 内添加如下配置,使开发者工具可以正确索引到 npm 依赖的位置。

json 复制代码
{
  ...
  "setting": {
    ...
    "packNpmManually": true,
    "packNpmRelationList": [
      {
        "packageJsonPath": "./package.json",
        "miniprogramNpmDistDir": "./miniprogram/"
      }
    ]
  }
}

注意: 由于目前新版开发者工具创建的小程序目录文件结构问题,npm构建的文件目录为miniprogram_npm,并且开发工具会默认在当前目录下创建miniprogram_npm的文件名,所以新版本的miniprogramNpmDistDir配置为'./'即可

2.3 修改project.private.config.json配置

project.private.config.json文件配置会覆盖project.config.json文件配置,需要修改project.private.config.json里面的setting,初学者可以直接删除。

2.4 构建 npm 包

打开微信开发者工具,点击 工具 -> 构建 npm ,并勾选 使用 npm 模块 选项,构建完成后,即可引入组件。

2.5 typescript 支持

如果你使用 typescript 开发小程序,还需要做如下操作,以获得顺畅的开发体验。

安装 miniprogram-api-typings

bash 复制代码
# 通过 npm 安装
npm i -D miniprogram-api-typings

2.6 安装组件

本案例以vant组件为例,

shell 复制代码
# 通过 npm 安装
npm i @vant/weapp -S --production

2.7 引入使用组件

以 Button 组件为例,只需要在app.jsonindex.json中配置 Button 对应的路径即可。

所有组件文档中的引入路径均以 npm 安装为例,如果你是通过下载源代码的方式使用 @vant/weapp,请将路径修改为项目中 @vant/weapp 所在的目录。

json 复制代码
// 通过 npm 安装
// app.json
"usingComponents": {
  "van-button": "@vant/weapp/button/index"
}

引入组件后,可以在 wxml 中直接使用组件

xml 复制代码
<van-button type="primary">按钮</van-button>

如图效果:

至此,三方组件包引入成功

相关推荐
包淼淼2 小时前
微信小程序自定义navigationBar顶部导航栏(背景图片)适配所有机型,使用tdesign-miniprogram t-navbar设置背景图片
微信小程序·小程序·tdesign
2401_844137952 小时前
JAVA同城生活新引擎外卖跑腿团购到店服务多合一高效系统小程序源码
微信·微信小程序·小程序·生活·微信公众平台·微信开放平台
骆晨学长3 小时前
基于springboot的智慧社区微信小程序
java·数据库·spring boot·后端·微信小程序·小程序
李宥小哥7 小时前
微信小程序07-开发进阶
微信小程序·小程序·notepad++
2401_8459375318 小时前
PHP一键约课高效健身智能健身管理系统小程序源码
微信·微信小程序·小程序·微信公众平台·微信开放平台
程序员入门进阶20 小时前
基于微信小程序的科创微应用平台设计与实现+ssm(lw+演示+源码+运行)
微信小程序·小程序
计算机源码社1 天前
分享一个基于微信小程序的居家养老服务小程序 养老服务预约安卓app uniapp(源码、调试、LW、开题、PPT)
android·微信小程序·uni-app·毕业设计项目·毕业设计源码·计算机课程设计·计算机毕业设计开题
双普拉斯1 天前
微信小程序点赞动画特效实现
nginx·微信小程序·notepad++
程序员阿龙1 天前
【2025】基于微信小程序的网上点餐系统设计与实现、基于微信小程序的智能网上点餐系统、微信小程序点餐系统设计、智能点餐系统开发、微信小程序网上点餐平台设计
微信小程序·小程序·毕业设计·订单管理·在线点餐·订单跟踪·在线支付
Angus-zoe1 天前
uniapp+vue+微信小程序实现侧边导航
vue.js·微信小程序·uni-app