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

2023-10-26

本文介绍了如何在微信小程序开发中使用 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" data-para="{{item}}" bindtap="tapItem">
      <view class="view_preinfo">
        <text class="list_preinfo">{{item.CreateDateTime}} / {{item.ArticleAuthor}}</text>
      </view>
      <text class="list_title">{{item.ArticleTitle}}</text>
      <view>
        <block wx:for="{{item.Tags}}" wx:key="{{item.TagName}}">
          <text class="list_tag" style="border: solid 1px {{item.BackgroundColor}};">{{item.TagName}}</text>
        </block>
      </view>
    </view>
  </block>
</view>

在页面中布局完 datepicker 后,保存并完成项目的编译后,点击按钮即可看到组件的加载情况。

截图

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

截图

此章节的配套视频教程在 微信小程序开发视频教程 #043 - 在小程序开发中使用 npm

转载于:https://www.cnblogs.com/parry/p/wxminiapp-using-npm.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序开发教程 #043 - 在小程序开发中使用 npm 的相关文章

随机推荐

  • jmeter简介

    性能测试 性能测试是什么 就是说基于协议模拟用户的发出请求 对服务器进行一定的负载 来测试服务器的性能指标是否满足要求性能指标关注点 时间性能 空间性能 性能测试与页面无关 性能测试工具 HP LoadRunner Apache AB Ap
  • MMDrawerController 与 StoryBoard 构建和谐抽屉效果

    纠结了一天都不知道怎么在storyboard中用MMDrawerController 看了下MMDrawerController Storyboard版本的库也不知道怎么用 网上搜了下 发现了个好方法 参考 http www wenzizo
  • 2017年、2019年全国大学生电子设计竞赛综合测评——常用电路Multisim仿真——方波、三角波振荡电路

    相关原创博客 2017年综合测评仿真电路讲解 题目和结果链接 常用电路Multisim仿真 方波 三角波振荡电路 常用电路Multisim仿真 有源低通滤波器设计 常用电路Multisim仿真 数字芯片74LS74构建分频器设计 常用电路M
  • Couch的MapReduce查询

    1 MapReduce介绍 传统的关系型数据库中 只要你的数据是结构化的 你可以进行任何类型的查询 Apache Couch与此相反 它使用MapReduce 预定义的map和的reduce方法 进行查询 这种查询方式具有更好的灵活性 因为
  • laravel-admin安装

    前言 Laravel Admin 是一个国产项目 作者是 song Laravel Admin 整合了 AdminLTE 内置了权限管理 还可以快速的创建数据表格和表单 更棒的是它是开源的 所以现在有很多人选择使用它来搭建管理后台 官网是h
  • jeecgboot 基础说明

    参考地址 1 主页面 路径 public index html 解释 配置登录页的title 和登录加载过程出现的文字 2 前端页面整体布局 路径 src components page GlobalLayout vue 解释 页面的菜单
  • Apache+SVN+Review Board代码审核服务器搭建流程

    Apache SVN Review Board代码审核服务器搭建流程 本博文基于原创 四京 https blog 51cto com 12676522 1929856 utm source oschina app 更新修改 一 简介 代码审
  • 【每日一题】ABC194E-Mex Min

    题目内容 原题链接 给定一个长度为 n n n 的整数数组 a a a 求所有长度为 m m
  • 腾讯云服务器带宽计费模式按流量内网、外网出入流量计算说明

    腾讯云服务器公网带宽计费模式按使用流量计费 云服务器对内或对外产生的流量如何计算 云服务器出方向 下行流量 和入方向 上行流量 怎么计算 腾讯云百科来详细说下腾讯云服务器按使用流量计算说明 腾讯云服务器带宽计费模式按使用流量 同一私有网络内
  • for in 和 for of 有什么区别

    for in和for of是两种用于遍历数据结构的循环语句 它们在用法和功能上有一些区别 for in循环 for in循环用于遍历对象的可枚举属性 在循环中 变量代表当前遍历到的属性名 字符串类型 循环会遍历对象的自身属性以及继承的属性
  • LeetCode解析------218.天际线问题-树状数组

    题目 城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓 现在 假设您获得了城市风光照片 图A 上显示的所有建筑物的位置和高度 请编写一个程序以输出由这些建筑物形成的天际线 图B 每个建筑物的几何信息用三元组 Li Ri Hi
  • 由相位噪声曲线计算积分相噪和Jitter的方法

    先放一张忘了从哪扒下来的图 基本思路 分段求积分相噪 相加得整体的积分相噪 进而得到以弧度为单位的相位抖动 最终转换为以时间为单位的Jitter MATLAB代码 function ph2jt fc f ph ph2jt fc f ph f
  • Android 实现计时器功能

    最近有个项目要实现记录时间推进的功能 之前百度了下 发现了android自带控件 Chronometer 可以实现这个功能 详见之前写的博客 http blog csdn net qq 21793463 article details 49
  • Android 系统设置中显示设置之休眠和屏保设置篇

    1 休眠设置 首先我们来看一下休眠设置在界面中的定义 1
  • 32_杂项

    文章目录 TLS TLS 安全密码套件 证书 TLS通讯过程 open file cache TLS TLS 安全密码套件 密钥交换 ecdhe ECDH椭圆曲线交换 身份验证 RSA 对称加密 aes 128 gcm 摘要算法 sha25
  • SpringMVC-复杂参数处理

    1 实体类 package com hwy entity public class Role private Integer id private String name public Integer getId return id pub
  • 程序员必须知道的10个搜索技巧

    转载地址 http www cnblogs com shown p 6524342 html 1 准确搜索 在关键词上加上双引号 2 排除关键词 用减号 eg 在搜索 Joe Bloggs jeans 时 你所得到的结果反馈是不包含 jea
  • vue3项目装包报错 npm ERR! 404 Not Found - GET https://registry.npmjs.org/@vue%2fvue-loader-v15 - Not found

    npm ERR code E404 npm ERR 404 Not Found GET https registry npmjs org vue 2fvue loader v15 Not found npm ERR 404 npm ERR
  • VSCode+Idea 一个增删改查demo

    一个简单的增删改查demo 开发工具 Visual Studio Code Idea Navicat demo 前端 后台 开发工具 Visual Studio Code 一款前端开发工具 下载地址 https code visualstu
  • 微信小程序开发教程 #043 - 在小程序开发中使用 npm

    本文介绍了如何在微信小程序开发中使用 npm 中包的功能 大大提高微信小程序的开发效率 同时也是微信小程序系列教程的视频版更新 微信小程序在发布之初没有对 npm 的支持功能 这也是目前很多前端开发人员在熟悉了 npm 生态环境后 对微信小