关于微信小程序不允许require变量的问题的问题,如何解决?

微信小程序使用用npm构建,其中引用vant组件,在构建npm提示D:\Project Folder\Project\Wechat\mk02/node_modules/express/lib/view.js:81-81: 不允许require变量,该如何解决不允许require变量的问题?在此之后引用组件没有效果,调试器报错,报错在下图

img

img

img


报错截图:

img

建议使用ES6的import/export

引用chatGPT作答,微信小程序不允许在小程序代码中使用 require 语法,因为它不是小程序的原生语法。不过,在小程序中使用npm包时,可以通过微信开发者工具的设置来开启构建npm支持。开启构建npm支持后,微信小程序会将 require 语法转换为小程序支持的语法。但有时可能会出现类似于你遇到的错误,提示不允许使用 require 变量。

针对这个问题,可以尝试以下几个解决方案:

1.确认是否已经在微信开发者工具中开启了构建npm支持。在微信开发者工具中,进入“详情”->“本地设置”->“使用npm模块”中勾选“使用npm模块”,并点击“确定”按钮。如果未勾选,则勾选并重新构建。

2.确认是否正确安装了vant组件。可以通过在命令行中执行 npm install vant 命令来安装vant组件。确保在小程序代码中正确引用vant组件。

3.检查你的项目是否存在冲突的npm包。如果存在多个版本的npm包冲突,可能会导致不允许使用 require 变量的错误。可以通过 npm ls 命令来检查项目中的npm包依赖关系,进而解决冲突问题。

4.如果以上方法都无法解决问题,可以尝试使用小程序原生支持的语法引入vant组件。可以在vant官方文档中查找小程序原生支持的引入方式。

希望以上解决方案能够帮助你解决问题。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
微信小程序官方文档中提到不允许在小程序中使用CommonJS规范的require语句引入模块,这是因为小程序的环境和Web浏览器的环境不同,小程序的JavaScript环境是由微信小程序内置的JavaScript引擎提供的,这个引擎不支持Node.js的CommonJS规范,因此不能使用require语句引入模块。

针对引用vant组件的问题,在构建npm的时候,可能出现require的变量含有Node.js的模块系统。因此需要特别注意的是,在开发小程序时,需要遵循微信小程序官方文档提供的开发规范和注意事项。

针对这个问题,可以带着以下思路尝试解决:

  1. 确保已经在微信开发者工具中安装了npm包,然后在app.json中声明使用vant组件。

  2. 如果还是无法正常使用vant组件,可以尝试手动去掉"import"和"require"语句中的变量,并尝试使用全局变量。代码示例:

const app = getApp()
const util = require('../../utils/util.js')

// 声明使用vant组件
import Toast from '../../vant-weapp/toast/toast';

Page({
  data: {
    ...
  },
  onLoad: function () {
    this.testToast();
  },
  testToast: function () {
    Toast('啦啦啦,测试Toast功能');
  }
})
  1. 如果还是无法正常使用vant组件,可以考虑使用微信小程序原生的组件或者其他的开源组件库。

同时,具体解决办法可能需要根据具体的代码和环境进行分析定位,建议配合错误提示一起进行调试,例如构建npm时产生的错误信息和调试器中的报错信息,从而尝试找出更加准确和有效的解决方案。
如果我的回答解决了您的问题,请采纳!

查看一下环境配置

发代码或者选择协助你解决