在小程序开发中使用npm的方法


Posted in Javascript onOctober 17, 2018

微信小程序在 2.2.1 版本后增加了对 npm 包加载的支持,使得小程序支持使用 npm 安装第三方包。

1. 在小程序中加载 npm 包

npm install miniprogram-datepicker --production

node_modules可以 在小程序根目录下,也可以存在于小程序根目录下的各个子目录中。但是不可以 在小程序根目录外。使用--production选项,可以减少安装一些业务无关的 npm 包,从而减少整个小程序包的大小。

2. 构建 npm 包

在微信小程序开发工具的「工具」菜单下点击「构建 npm」命令,进行 npm 包的构建,此构建可以将 npm 包构建成在小程序中可加载使用的包。

node_modules 目录不会参与编译、上传和打包中,所以小程序想要使用 npm 包必须走一遍“构建 npm”的过程,在最外层的 node_modules 的同级目录下会生成一个 miniprogram_npm 目录,里面会存放构建打包后的 npm 包,也就是小程序真正使用的 npm 包。

构建打包分为两种:小程序 npm 包会直接拷贝构建文件生成目录下的所有文件到 miniprogram_npm 中;其他 npm 包则会从入口 js 文件开始走一遍依赖分析和打包过程(类似 webpack)。

寻找 npm 包的过程和 npm 的实现类似,从依赖 npm 包的文件所在目录开始逐层往外找,直到找到可用的 npm 包或是小程序根目录为止。

在小程序开发中使用npm的方法

构建完成后还需要确认项目已勾选了「使用 npm 模块」。

在小程序开发中使用npm的方法

3.使用npm包

js 中引入 npm 包:

const package = require('packageName')

使用 npm 包中的自定义组件:

{
 "usingComponents": {
  "datepicker": "miniprogram-datepicker"
 }
}

miniprogram-datepicker组件运行效果

在小程序开发中使用npm的方法

其他

微信小程序npm支持文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
jQuery代码优化 事件委托篇
Nov 01 Javascript
验证控件与Button的OnClientClick事件详细解析
Dec 04 Javascript
js操作模态窗口及父子窗口间相互传值示例
Jun 09 Javascript
纯javascript实现自动发送邮件
Oct 21 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
Nov 21 Javascript
深入理解vue.js双向绑定的实现原理
Dec 05 Javascript
Js中async/await的执行顺序详解
Sep 22 Javascript
JavaScript设计模式之工厂模式简单实例教程
Jul 03 Javascript
JS实现求5的阶乘示例
Jan 21 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
Apr 22 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
浅谈HTTP 缓存的那些事儿
Oct 17 #Javascript
使用angular-cli webpack创建多个包的方法
Oct 16 #Javascript
element-ui的回调函数Events的用法详解
Oct 16 #Javascript
基于vue-upload-component封装一个图片上传组件的示例
Oct 16 #Javascript
Postman的下载及安装教程详解
Oct 16 #Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 #Javascript
详解angular2如何手动点击特定元素上的点击事件
Oct 16 #Javascript
You might like
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
详解webpack babel的配置
2018/01/09 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
详解Python_shutil模块
2019/03/15 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python 随机森林算法及其优化详解
2019/07/11 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
学生思想表现的评语
2014/01/30 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
公司联欢会策划方案
2014/05/19 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
财务出纳岗位职责
2015/03/31 职场文书
安全教育日主题班会
2015/08/13 职场文书
python 中的@运算符使用
2021/05/26 Python