Wechat mini program when using plugins report errors
ioslide opened this issue · comments
TypeError: t is not a function
maybe you cloud try
const plugin = require('dayjs/plugin/xx').default
Miniprogram npm support does not compile plugins correctly. It only seems to compile the dayjs entry file (index.js) and immediate dependencies. You can add gulp or something similar to manually copy the plugin files from node_modules/dayjs/plugin to miniprogram_npm/dayjs/plugin
- Delete built
miniprogram_ npm/dayjs
folder - modify
node_modules\dayjs\package.json
{ ...... "miniprogram": "esm", // copy esm to miniprogram_npm ...... }
- building npm
- The test code is as follows
var dayjs = require("dayjs").default; var customParseFormat = require("dayjs/plugin/customParseFormat").default var advancedFormat = require('dayjs/plugin/advancedFormat').default dayjs.extend(advancedFormat); dayjs.extend(customParseFormat); console.log(dayjs().format('Q Do k kk X x'))
- 删除
miniprogram_ npm/dayjs
文件夹 - 修改
node_modules\dayjs\package.json
文件内容{ ...... "miniprogram": "esm", // copy esm to miniprogram_npm ...... }
- 重新构建npm
- 测试代码
var dayjs = require("dayjs").default; var customParseFormat = require("dayjs/plugin/customParseFormat").default var advancedFormat = require('dayjs/plugin/advancedFormat').default dayjs.extend(advancedFormat); dayjs.extend(customParseFormat); console.log(dayjs().format('Q Do k kk X x'))
希望有帮助,不确定真的解决了问题........
- Delete built
miniprogram_ npm/dayjs
folder- modify
node_modules\dayjs\package.json
{ ...... "miniprogram": "esm", // copy esm to miniprogram_npm ...... }
- building npm
- The test code is as follows
var dayjs = require("dayjs").default; var customParseFormat = require("dayjs/plugin/customParseFormat").default var advancedFormat = require('dayjs/plugin/advancedFormat').default dayjs.extend(advancedFormat); dayjs.extend(customParseFormat); console.log(dayjs().format('Q Do k kk X x'))
- 删除
miniprogram_ npm/dayjs
文件夹- 修改
node_modules\dayjs\package.json
文件内容{ ...... "miniprogram": "esm", // copy esm to miniprogram_npm ...... }
- 重新构建npm
- 测试代码
var dayjs = require("dayjs").default; var customParseFormat = require("dayjs/plugin/customParseFormat").default var advancedFormat = require('dayjs/plugin/advancedFormat').default dayjs.extend(advancedFormat); dayjs.extend(customParseFormat); console.log(dayjs().format('Q Do k kk X x'))
希望有帮助,不确定真的解决了问题........
提个pr吧兄弟
Just wondering if this PR is a proper fix #1835 (comment)
- Delete built
miniprogram_ npm/dayjs
folder- modify
node_modules\dayjs\package.json
{ ...... "miniprogram": "esm", // copy esm to miniprogram_npm ...... }
- building npm
- The test code is as follows
var dayjs = require("dayjs").default; var customParseFormat = require("dayjs/plugin/customParseFormat").default var advancedFormat = require('dayjs/plugin/advancedFormat').default dayjs.extend(advancedFormat); dayjs.extend(customParseFormat); console.log(dayjs().format('Q Do k kk X x'))
- 删除
miniprogram_ npm/dayjs
文件夹- 修改
node_modules\dayjs\package.json
文件内容{ ...... "miniprogram": "esm", // copy esm to miniprogram_npm ...... }
- 重新构建npm
- 测试代码
var dayjs = require("dayjs").default; var customParseFormat = require("dayjs/plugin/customParseFormat").default var advancedFormat = require('dayjs/plugin/advancedFormat').default dayjs.extend(advancedFormat); dayjs.extend(customParseFormat); console.log(dayjs().format('Q Do k kk X x'))
希望有帮助,不确定真的解决了问题........
亲测有效。感谢分享