广告
返回顶部
首页 > 资讯 > 前端开发 > html >微信小程序如何支持npm
  • 546
分享到

微信小程序如何支持npm

2024-04-02 19:04:59 546人浏览 安东尼
摘要

这篇文章主要介绍了微信小程序如何支持npm,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。npm 支持从小程序基础库版本 2.2.1 或以上、

这篇文章主要介绍了微信小程序如何支持npm,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

npm 支持

小程序基础库版本 2.2.1 或以上、及开发工具 1.02.1808300 或以上开始,小程序支持使用 npm 安装第三方包。

踩坑之路

由于项目中需要格式化一些日期数据,于是选择了moment,一款javascript 日期处理类库

首先使用命令行,安装moment

# 打开小程序根目录
cd src
npm install --production moment

然后按照小程序文档往下操作,直到构建完成

于是我们迫不及待的开始使用moment

import moment from 'moment';

let sFromNowText = moment(new Date() - 360000).fromNow();
console.log(sFromNowText);

// 控制台输出:"6 minutes aGo"

moment能够正常工作,但是很快我们发现英文不是我们想要的

于是我们找到moment的国际化配置,并设置全局语言为中文

import moment from 'moment';
moment.locale('zh-cn');

let sFromNowText = moment(new Date() - 360000).fromNow();
console.log(sFromNowText);

// 可是控制台,依然输出:"6 minutes ago"

尝试输出moment.locale执行后的返回值

// ...
let sLang = moment.locale('zh-cn');
console.log(sLang);

// 控制台输出:"en"

发现设置语言环境失败了,经过排查和翻阅小程序文档后,发现通过微信开发者工具构建npm后,并不会将语言环境相关文件拷贝到miniprogram_npm目录下,仅将入口js文件及其依赖的模块进行打包处理,进而导致加载中文语言环境失败。以下是摘自小程序文档的一段话:

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

快速查看了一下moment源码,发现moment.locale方法,会从./locale/目录下加载语言环境包,于是尝试手动从node_modules/moment/目录下,将中文语言环境包,拷贝到miniprogram_npm目录下

// moment.js
// ...
function loadLocale(name) {
 // ...
 var aliasedRequire = require;
 aliasedRequire('./locale/' + name);
 // ...
}
// ...

经过调试发现,moment定义语言环境时出错,原来是由于构建npm导致入口文件(moment.js)经过打包后更名为index.js导致:Error: module "miniprogram_npm/moment/moment" is not defined

// zh-cn.js
(function(global, factory) {
 typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function'
  ? factory(require('../moment'))
  : typeof define === 'function' && define.amd
   ? define(['../moment'], factory)
   : factory(global.moment);
})(this, function(moment) {
 'use strict';

 var zhCn = moment.defineLocale('zh-cn', {
  // ...
 });

 return zhCn;
});

果然手动将'../moment'统一改为'../index',然后重新执行

import moment from 'moment';
moment.locale('zh-cn');

let sFromNowText = moment(new Date() - 360000).fromNow();
console.log(sFromNowText);

// 现在控制台,输出:"6 分钟前"

大功告成,nice! 但也别忘了回过头来,总结一下导致这几个问题的原因:

  • 构建npm会将npm包的入口文件(eg: moment.js),打包后更名为index.js

  • 构建npm仅将npm包的入口js文件及其依赖的模块进行打包处理,并不会将该npm包下一些可选的文件(eg: moment的语言环境包)拷贝到miniprogram_npm目录下

miniprogram_npm 、构建npm及更多npm支持相关信息,请翻阅小程序文档-npm支持

感谢你能够认真阅读完这篇文章,希望小编分享的“微信小程序如何支持npm”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网html频道,更多相关知识等着你来学习!

--结束END--

本文标题: 微信小程序如何支持npm

本文链接: https://www.lsjlt.com/news/70830.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序如何支持npm
    这篇文章主要介绍了微信小程序如何支持npm,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。npm 支持从小程序基础库版本 2.2.1 或以上、...
    99+
    2022-10-19
  • 如何让微信小程序支持cookie的方式
    这篇文章主要讲解了“如何让微信小程序支持cookie的方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何让微信小程序支持cookie的方式”吧!Intro微信原生的 wx.request...
    99+
    2023-06-26
  • 小程序微信支付
    微信小程序实现支付功能 1. 准备工作 在开始实现微信小程序支付功能之前,我们需要先完成以下准备工作: 注册微信支付商户号,并完成商户资质审核;微信支付开发文档;在小程序中引入微信支付JSAPI;获取...
    99+
    2023-09-04
    小程序 微信 微信小程序
  • 微信小程序怎么实现支持外设
    这篇文章主要讲解了“微信小程序怎么实现支持外设”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序怎么实现支持外设”吧!  微信小程序开发中,我们会用到蓝牙,相机、录音等设备。使用这些设...
    99+
    2023-06-26
  • 微信小程序如何实现支持ES6中Promise特性
    小编给大家分享一下微信小程序如何实现支持ES6中Promise特性,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!遇到的问题微信开发者工具更新版本后, 移除了开发者工具对 ES6 中 Pro...
    99+
    2022-10-19
  • 微信小程序中如何实现微信支付
    微信支付是微信公众平台提供的一种在线支付服务,可以为用户提供快速、方便、安全的支付体验。而在微信小程序中实现微信支付,则可以为应用程序提供更多的功能和服务,提高用户体验和商业价值。因此,在本文中,我们将介绍如何在微信小程序中实现微信支付。 ...
    99+
    2023-08-16
    微信小程序 微信 小程序 前端 javascript
  • Fundebug如何支持监控微信小程序HTTP请求错误
    这篇文章主要介绍了Fundebug如何支持监控微信小程序HTTP请求错误,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。接入插件接入Funde...
    99+
    2022-10-19
  • 微信小程序如何开发微信支付功能
    本篇内容主要讲解“微信小程序如何开发微信支付功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序如何开发微信支付功能”吧!用户请求开发者后台,发起下单请求发起请求前在小程序端调用&nbs...
    99+
    2023-06-26
  • 【微信支付】java-微信小程序支付-V3接口
    一、对接前准备 最开始需要在微信支付的官网注册一个商户; 在管理页面中申请关联小程序,通过小程序的 appid 进行关联;商户号和appid之间是多对多的关系 进入微信公众平台,功能-微信支付中确认关联 具体流程请浏览官方文档:接入前准备-...
    99+
    2023-10-27
    微信 微信小程序 小程序
  • 跳转微信小程序和支付宝小程序
    跳转微信小程序和支付宝小程序 1. 微信小程序 参考链接 获取微信小程序 URL Scheme 1.1 获取小程序连接 这里需要获取长期有效的 Scheme,方式如下: 联系小程序开发者其他渠道 示例 小程序 Scheme : 测试地址,可...
    99+
    2023-08-16
    微信小程序 小程序
  • 微信小程序怎么实现支持ES6中Promise特性
    这篇文章主要介绍了微信小程序怎么实现支持ES6中Promise特性的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序怎么实现支持ES6中Promise特性文章都会有所收获,下面我们一起来看看吧。遇到的问题...
    99+
    2023-06-17
  • 微信小程序如何实现wxml文件和wxss文件支持webstrom
    这篇文章主要介绍微信小程序如何实现wxml文件和wxss文件支持webstrom,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ebstrom默认不支持wxml文件和wxss文件,所以...
    99+
    2022-10-19
  • 微信小程序支付完整流程
    1、注册微信支付商户号(由上级或法人注册) 注册链接:https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal 此商户...
    99+
    2023-09-21
    微信小程序 小程序 javascript
  • 微信小程序支付流程(前端)
    微信小程序的支付只要用到官方的支付API : wx.requestPayment(Object object) 官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/paym...
    99+
    2023-08-19
    微信小程序 前端 小程序 微信 javascript
  • 微信小程序支付功能如何实现
    这篇文章主要介绍了微信小程序支付功能如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序支付功能如何实现文章都会有所收获,下面我们一起来看看吧。微信小程序支付功能开发文档如下:小程序端,保留大部分的...
    99+
    2023-06-26
  • 微信小程序支付功能如何开通
    要开通微信小程序支付功能,您需要完成以下步骤:1. 注册微信支付商户账号:访问微信支付官方网站(pay.weixin.qq.com)...
    99+
    2023-08-16
    微信小程序
  • 解决uniapp编译的微信小程序不支持v-bind=“$attrs“
    1. 环境 1. uniapp2. vite + vue3 + TypeScript + vite(移动端低代码)3. 编译成多端通用的小程序 2. 需要分两类解决 v-model属性 在高版本的vue3+vite中使用父组件传递下来...
    99+
    2023-08-17
    uni-app 微信小程序 小程序
  • 微信小程序如何实现实时聊天并支持图片预览
    这篇文章给大家分享的是有关微信小程序如何实现实时聊天并支持图片预览的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先看一下界面,界面很简单,就是首页刚进来获取了用户信息头像,昵称...
    99+
    2022-10-19
  • Python3 微信支付(小程序支付)V3接口
    起因:         因公司项目需要网上充值功能,从而对接微信支付,目前也只对接了微信支付的小程序支付功能,在网上找到的都是对接微信支付V2版本接口,与我所对接的接口版本不一致,无法使用,特此记录下微信支付完成功能,使用Django完成后...
    99+
    2023-09-12
    微信 小程序 微信小程序
  • 微信支付V3 小程序支付API Java版
    本文目的:快速接通微信支付V3 无需关注细节,实现支付功能,修改配置即可调用 文章目录 接入准备微信支付流程整理(小程序版)一、导入微信支付扩展包二、微信支付工具类1.签名工具类2.微信...
    99+
    2023-10-27
    微信 小程序 java
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作