国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

微信小程序使用npm支持踩坑

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:04:19
文檔

微信小程序使用npm支持踩坑

微信小程序使用npm支持踩坑:前言 最近寫了個CNode 社區(qū)的微信小程序版本,把在微信小程序中使用npm包,踩的坑記錄一下,希望能給遇到類似問題的小伙伴,提供一些思路和方向。 npm 支持 從小程序基礎(chǔ)庫版本 2.2.1 或以上、及開發(fā)者工具 1.02.1808300 或以上開始,小程序支持使用 n
推薦度:
導(dǎo)讀微信小程序使用npm支持踩坑:前言 最近寫了個CNode 社區(qū)的微信小程序版本,把在微信小程序中使用npm包,踩的坑記錄一下,希望能給遇到類似問題的小伙伴,提供一些思路和方向。 npm 支持 從小程序基礎(chǔ)庫版本 2.2.1 或以上、及開發(fā)者工具 1.02.1808300 或以上開始,小程序支持使用 n

前言

最近寫了個CNode 社區(qū)的微信小程序版本,把在微信小程序中使用npm包,踩的坑記錄一下,希望能給遇到類似問題的小伙伴,提供一些思路和方向。

npm 支持

從小程序基礎(chǔ)庫版本 2.2.1 或以上、及開發(fā)者工具 1.02.1808300 或以上開始,小程序支持使用 npm 安裝第三方包。

踩坑之路

由于項目中需要格式化一些日期數(shù)據(jù),于是選擇了moment,一款JavaScript 日期處理類庫

首先使用命令行,安裝moment

# 打開小程序根目錄
cd src
npm install --production moment

然后按照小程序文檔往下操作,直到構(gòu)建完成

于是我們迫不及待的開始使用moment

import moment from 'moment';

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

// 控制臺
輸出:"6 minutes ago"

moment能夠正常工作,但是很快我們發(fā)現(xiàn)英文不是我們想要的

于是我們找到moment的國際化配置,并設(shè)置全局語言為中文

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

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

// 可是控制臺,依然
輸出:"6 minutes ago"

嘗試輸出moment.locale執(zhí)行后的返回值

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

// 控制臺
輸出:"en"

發(fā)現(xiàn)設(shè)置語言環(huán)境失敗了,經(jīng)過排查和翻閱小程序文檔后,發(fā)現(xiàn)通過微信開發(fā)者工具構(gòu)建npm后,并不會將語言環(huán)境相關(guān)文件拷貝到miniprogram_npm目錄下,僅將入口js文件及其依賴的模塊進行打包處理,進而導(dǎo)致加載中文語言環(huán)境失敗。以下是摘自小程序文檔的一段話:

構(gòu)建打包分為兩種:小程序 npm 包會直接拷貝構(gòu)建文件生成目錄下的所有文件到 miniprogram_npm 中;其他 npm 包則會從入口 js 文件開始走一遍依賴分析和打包過程(類似 webpack)。

快速查看了一下moment源碼,發(fā)現(xiàn)moment.locale方法,會從./locale/目錄下加載語言環(huán)境包,于是嘗試手動從node_modules/moment/目錄下,將中文語言環(huán)境包,拷貝到miniprogram_npm目錄下

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

經(jīng)過調(diào)試發(fā)現(xiàn),moment定義語言環(huán)境時出錯,原來是由于構(gòu)建npm導(dǎo)致入口文件(moment.js)經(jīng)過打包后更名為index.js導(dǎo)致: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'統(tǒng)一改為'../index',然后重新執(zhí)行

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

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

// 現(xiàn)在控制臺,
輸出:"6 分鐘前"

大功告成,nice! 但也別忘了回過頭來,總結(jié)一下導(dǎo)致這幾個問題的原因:

  • 構(gòu)建npm會將npm包的入口文件(eg: moment.js),打包后更名為index.js
  • 構(gòu)建npm僅將npm包的入口js文件及其依賴的模塊進行打包處理,并不會將該npm包下一些可選的文件(eg: moment的語言環(huán)境包)拷貝到miniprogram_npm目錄下
  • miniprogram_npm 、構(gòu)建npm及更多npm支持相關(guān)信息,請翻閱小程序文檔-npm支持

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    微信小程序使用npm支持踩坑

    微信小程序使用npm支持踩坑:前言 最近寫了個CNode 社區(qū)的微信小程序版本,把在微信小程序中使用npm包,踩的坑記錄一下,希望能給遇到類似問題的小伙伴,提供一些思路和方向。 npm 支持 從小程序基礎(chǔ)庫版本 2.2.1 或以上、及開發(fā)者工具 1.02.1808300 或以上開始,小程序支持使用 n
    推薦度:
    標(biāo)簽: 微信 小程序 微信小程序
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲精品自产拍在线观看app | 久久久国产高清 | 亚洲精品福利在线观看 | 伊人久久中文字幕久久cm | 亚洲精品制服丝袜二区 | 欧美最新一区二区三区四区 | 最新国产视频 | 国产精品视频久久久久久 | 久久综合精品国产一区二区三区无 | 久久久久777777人人人视频 | 看一级特黄a大片日本片 | 九九精品视频一区在线 | 欧美三页| 欧美精品第二页 | 日韩伦理网 | 97国产精品欧美一区二区三区 | 精品麻豆 | 亚洲国产精品视频 | 91欧美亚洲| 精品72久久久久久久中文字幕 | 成人午夜精品久久久久久久小说 | 日韩免费播放 | 欧美性xxxxxx性 | 久久亚洲精品国产精品777777 | 欧美在线免费看 | 美女视频黄a视频全免费网站一区 | 久久国产精品一区二区三区 | 亚洲精品影院久久久久久 | 成人美女黄网站色大色费 | 国产第一页在线观看 | 日本精品久久久一区二区三区 | 国产精品美女久久久久网站 | 精品欧美成人高清视频在线观看 | 美女视频黄a视频全免费应用 | 国产高清美女一级a毛片久久 | 国产成人久久久精品毛片 | 欧美 日韩 中文 | 欧美成人伊人久久综合网 | 伊人婷婷| 永久免费观看的毛片的网站 | 又黄又爽视频在线观看 |