npm 支持
从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或以上最先,,,,,小程序支持使用 npm 装置第三方包。。。。。
此文档要求开发者们对 npm 有一定的相识,,,,,因此不会再去介绍 npm 的基本功效。。。。。如若之前未接触过 npm,,,,,请翻阅 官方 npm 文档 举行学习。。。。。
使用 npm 包
在小程序 package.json 所在的目录中执行下令装置 npm 包:
npm install
此处要求加入构建 npm 的 package.json 需要在 project.config.js 界说的 miniprogramRoot 之内。。。。。
tips:开发者工具 v1.02.1811150 版本最先,,,,,调解为凭证 package.json 的 dependencies 字段构建,,,,,以是声明在 devDependencies 里的包也可以在开发历程中被装置使用而不会加入到构建中。。。。。若是是这之前的版本,,,,,则建议使用--production选项,,,,,可以镌汰装置一些营业无关的 npm 包,,,,,从而镌汰整个小程序包的巨细。。。。。
tips: miniprogramRoot 字段不保存时,,,,,miniprogramRoot 就是 project.config.js 所在的目录
点击开发者工具中的菜单栏:工具 --> 构建 npm

勾选“使用 npm ???”选项:
构建完成后即可使用 npm 包。。。。。
js 中引入 npm 包:
const myPackage = require('packageName')
const packageOther = require('packageName/other')
使用 npm 包中的自界说组件:
{
"usingComponents": {
"myPackage": "packageName",
"package-other": "packageName/other"
}
}
tips:此处使用 npm 包时若是只引入包名,,,,,则默认寻找包名下的 index.js 文件或者 index 组件。。。。。
宣布 npm 包
宣布小程序 npm 包的约束
这里要宣布的 npm 包是特指专为小程序定制的 npm 包(下称小程序 npm 包)。。。。。由于小程序自界说组件的特殊性,,,,,原有的 npm 包机制无法知足pp电子需求,,,,,以是这里需要对小程序 npm 包做一些约束:
小程序 npm 包要求根目录下必需有构建文件天生目录(默以为 miniprogram_dist 目录),,,,,此目录可以通过在 package.json 文件中新增一个 miniprogram 字段来指定,,,,,好比:
{
"name": "miniprogram-custom-component",
"version": "1.0.0",
"description": "",
"miniprogram": "dist",
"devDependencies": {},
"dependencies": {}
}
小程序 npm 包里只有构建文件天生目录会被算入小程序包的占用空间,,,,,上传小程序代码时也只会上传该目录的代码。。。。。若是小程序 npm 包有一些测试、构建相关的代码请放到构建文件天生目录外。。。。。另外也可以使用.npmignore文件来阻止将一些非营业代码文件宣布到 npm 中。。。。。
测试、构建相关的依赖请放入 devDependencies 字段中阻止被一起打包到小程序包中。。。。。
宣布其他 npm 包的约束
若是是已经宣布过的一些 npm 包,,,,,由于一些原因无法刷新成小程序 npm 包的结构的话,,,,,也可以通过微调后被使用,,,,,可是请确保遵照以下几点:
只支持纯 js 包,,,,,不支持自界说组件。。。。。
必需有入口文件,,,,,即需要包管 package.json 中的 main 字段是指向一个准确的入口,,,,,若是 package.json 中没有 main 字段,,,,,则以 npm 包根目录下的 index.js 作为入口文件。。。。。
测试、构建相关的依赖请放入 devDependencies 字段中阻止被一起打包到小程序包中,,,,,这一点和小程序 npm 包的要求相同。。。。。
不支持依赖 c++ addon,,,,,不支持依赖 nodejs 的内置库:
const addon = require('./addon.node'); // 不支持!
const http = require('http'); // 不支持!
tips:关于一些纯 js 实现的 nodejs 内置库(如 path ???),,,,,可以通过特殊装置其他开发者实现的 npm 包来支持。。。。。
使用 require 依赖的时间下列几种方式也是不允许的:
// 不允许将 require 赋值给其他变量后再使用,,,,,以下代码不会去剖析出详细依赖
let r;
r = require;
r('testa');
let r2 = require;
r2('testa');
// 不允许 require 一个变量,,,,,以下代码依赖运行时,,,,,无法剖析出详细依赖
let m = 'testa';
require(m);
小程序情形较量特殊,,,,,一些全局变量(如 window 工具)和结构器(如 Function 结构器)是无法使用的。。。。。
宣布流程
宣布 npm 包的流程简述如下:
若是还没有 npm 帐号,,,,,可以到 npm 官网 注册一个 npm 帐号。。。。。
在外地登录 npm 帐号,,,,,在外地执行:
npm adduser
或者
npm login
在已完成编写的 npm 包根目录下执行:
npm publish
到此,,,,,npm 包就乐成宣布到 npm 平台了。。。。。
tips:一些开发者在开发历程中可能修悔改 npm 的源,,,,,以是当举行登录或宣布时需要注重要将酝迫簇 npm 的源。。。。。
原理介绍
为了资助各人更好的明确宣布 npm 包中提到的种种要求,,,,,这里简朴介绍一下原理:
首先 node_modules 目录不会加入编译、上传和打包中,,,,,以是小程序想要使用 npm 包必需走一遍“构建 npm”的历程,,,,,在每一份 miniprogramRoot 内开发者声明的 package.json 的最外层的 node_modules 的同级目录下会天生一个 miniprogram_npm 目录,,,,,内里会存放构建打包后的 npm 包,,,,,也就是小程序真正使用的 npm 包。。。。。
构建打包分为两种:小程序 npm 包会直接拷贝构建文件天生目录下的所有文件到 miniprogram_npm 中;其他 npm 包则会从入口 js 文件最先走一遍依赖剖析和打包历程(类似 webpack)。。。。。
寻找 npm 包的历程和 npm 的实现类似,,,,,从依赖 npm 包的文件所在目录最先逐层往外找,,,,,直到找到可用的 npm 包或是小程序根目录为止。。。。。
KESION pp电子软件
KESION pp电子软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,,,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。。。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。。。。KESION 一直通过手艺立异,,,,,提供产品和服务,,,,,助力企业向数字化转型,,,,,通过科技驱动商业刷新,,,,,让商业变得更智慧!
从 1.03.2006302 (或 1.03.2006302) 最先,,,,,我们提供了两种构建 npm 的方式: 默认的构建 npm 方式 默认情形下,,,,,在 miniprogramRoot 内准确设置了 pa
swiper中文文档 基础库 1.0.0 最先支持,,,,,低版本需做兼容处理。。。。。 滑块视图容器。。。。。其中只可放置swiper-item组件,,,,,否则会导致未界说的行为。。。。。 属性类型默认值必填说明最低版本 indicat