当前位置: 首页 > news >正文

微信小程序开发教程 043 - 在小程序开发中使用 npm

本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新。

微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发人员在熟悉了 npm 生态环境后,对微信小程序诟病的地方。

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

微信小程序的功能更新最近更新的也非常给力,如之前给大家介绍的微信小程序开发平台新功能「云开发」快速上手体验。

1. 在小程序中加载 npm 包

微信小程序关于 npm 包的加载使用官方文档在这里,此实战部分我们通过加载一个 npm 的第三方库miniprogram-datepicker
,此类库用于实现公历与农历的日期选择功能,而微信小程序官方的组件只能简单地选择一个公历时间。

在终端中定位到微信小程序的项目文件夹,通过 npm 的安装命令安装。

此处请务必使用 --production 选项,可以减少安装一些业务无关的 npm 包,从而减少整个小程序包的大小。

2. 构建 npm 包

在微信小程序开发工具的「工具」菜单下点击「构建 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 模块」。

3. 在项目中使用第三方模块

在我们之前实战项目中,在首页中测试下此 npm 模块的加载。

<view class="doc-container"> <view class="doc-title">今日精选</view> <datepicker value="{{solar}}" bindchange="bindSolarChange"> <button type="default">公历</button> </datepicker> <datepicker value="{{lunar}}" chinese="{{true}}" bindchange="bindLunarChange"> <button type="default">农历</button> </datepicker> <block wx:for="{{feeds}}" wx:key="{{item.ArticleId}}"> <view class="list" />

4. 项目笔记以及视频演示

此章节的配套视频教程在 微信小程序开发视频教程 #043 - 在小程序开发中使用 npm。
个人技术视频博客站点:https://devopen.club/

http://www.cnnetsun.cn/news/3818766.html

相关文章:

  • MVC3缓存之三:MVC3中的局部缓存(Partial Page)
  • 获取使用ClickOnce部署的应用程序的版本号
  • VSCode 必装的 10 个高效开发插件
  • Visual C++ MFC序列化实战:从原理到绘图应用开发
  • 华为OD机试免单统计题解:哈希表应用与多语言实现详解
  • Webpack 2 视频教程 012 - 理解Webpack 中的 CSS 作用域与 CSS Modules
  • 【C++】面向对象三大特性之多态的详细解析(一)
  • 奥维昔巴特Odevixibat获FDA批准:进行性家族性肝内胆汁淤积症和Alagille综合征胆汁淤积性瘙痒的非全身性治疗
  • 从零到月入2W+:一位程序员用AI做知识付费的完整闭环(含选题库、SOP模板、转化漏斗)
  • 如何免费解锁Wand专业版功能:3种补丁方案与远程控制完整指南
  • 《React Native 精解与实战》书籍连载「React 与 React Native 简介」
  • Path of Building:5分钟学会《流放之路》离线构筑,告别浪费资源的试错
  • Unity URP自定义渲染管线:RenderFeature与Volume协同实现动态特效
  • Docker 入门与完整实战视频教程
  • Unity UGUI自适应布局避坑指南:Content Size Fitter嵌套问题解析与实战解决方案
  • 别再手动盘库存了!电商库存预警系统3步搭建指南(附真实案例)
  • 相关系数全解析:从皮尔逊到斯皮尔曼,量化变量关联的实战指南
  • HarmonyOS应用实战-启示散页-72-多窗口编辑别互相覆盖草稿:给每个窗口分配 draftSessionId
  • 收藏!小白程序员也能掌握大模型,高薪就业机会等你来!
  • 大模型高效部署实战:从Inkling-Small看参数减半性能持平的实现与落地
  • 国产长芯微LDMX345完全pin-pin替代ADXL345,是一款小而薄的低功耗三轴加速度计
  • WebPShop:让Photoshop完美支持WebP格式的终极解决方案
  • Shader Weaver图形化着色器编辑:降低Unity视觉开发门槛
  • 构建文本解析与状态机引擎:从复杂字符串到结构化业务逻辑
  • jQuery低版本高危漏洞CVE-2020-11022/11023深度解析与修复指南
  • Cocos Creator虚拟摇杆开发指南:从基础实现到高级手感优化
  • Agentic SRE 落地实战:告别救火式运维,解锁人机协同可靠性新范式
  • Termux中使用Ngrok实现内网穿透:从原理到实战
  • Unity SLG项目启动:基于GameFramework的加载界面与初始化流程实践
  • Unity UI动态渐变Shader实现:从原理到实战,突破内置限制