微信小程序npm依赖出现'require' requires one and only one static string literal

  1. 小程序引用npm的js模块(https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html),即使是官方的模块,在小程序预览上传时,会发生“'require' requires one and only one static string literal”错误,无法使用代码保护功微信小程序npm依赖出现'require' requires one and only one static string literal_第1张图片

  2. 但是小程序npm的第三方组件(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/trdparty.html),却不会发生以上错误

  3. 检查发现js模块的index.js被小程序构建后,会出现大量的require动态引用和赋值的情况,(https://developers.weixin.qq.com/miniprogram/dev/devtools/project.html#%E9%A1%B9%E7%9B%AE%E8%AE%BE%E7%BD%AE)官方文档中说明这样是不能代码保护的微信小程序npm依赖出现'require' requires one and only one static string literal_第2张图片

  4. 检查发现组件模块的package.json文件中有miniprogram:"miniprogram_dist",这项设置,放在其中的内容在编译时直接复制到小程序中,代码不变,所以不存在require动态引用和赋值的问题,可以使用

  5. 在写npm模块的时候,package.json中加上miniprogram,其指向的目录作为代码的根目录即可解决问题 微信小程序npm依赖出现'require' requires one and only one static string literal_第3张图片

  6. 调用的时候,需要require("xxx/index"),写到js文件的路径,但是".js"不必写。

  7. 如果只写模块名称来引用index.js的话,勾选了代码保护后,上传到体验版,真机测试时会报找不到xxx.js文件的错误。

你可能感兴趣的:(微信小程序)