微信小程序使用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>

如图效果:

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

相关推荐
h_654321018 小时前
微信小程序点击按钮跳转链接并显示
微信小程序·小程序
银迢迢20 小时前
微信小程序的开发及问题解决
微信小程序·小程序
liyinchi198821 小时前
原生微信小程序 textarea组件placeholder无法换行的问题解决办法
微信小程序·小程序
前端极客探险家2 天前
微信小程序全解析:从入门到实战
微信小程序·小程序
h_65432102 天前
微信小程序van-dialog确认验证失败时阻止对话框的关闭
微信小程序·小程序
-曾牛2 天前
基于微信小程序的在线聊天功能实现:WebSocket通信实战
前端·后端·websocket·网络协议·微信小程序·小程序·notepad++
CN自由之翼2 天前
【微信小程序】webp资源上传失败
微信小程序·小程序
小新1102 天前
微信小程序学习之搜索框
学习·微信小程序·小程序
小新1102 天前
微信小程序之将轮播图设计为组件
微信小程序·小程序
不爱吃饭爱吃菜2 天前
uniapp微信小程序-长按按钮百度语音识别回显文字
前端·javascript·vue.js·百度·微信小程序·uni-app·语音识别