Gulp Task ReferenceError: requite is not defined -

Gulp Task ReferenceError: requite is not defined -

我正在尝试设置 VSCODE 以将脚本上传到 NetSuite。我正在使用此视频作为指导 https://youtu.be/Q9wrP5GrFTU .

我的 Gulp 文件定义如下:

requite('./node_modules/@hitc/netsuite-tools/gulptools')
.setupHITCGulp(require('gulp'));

但是当我按下键盘快捷键时,出现了以下错误:

> Executing task: gulp build-and-upload --file /eklon/NetSuite/Venturus/Studies/gulpfile.js <

ReferenceError: requite is not defined
    at Object.<anonymous> (/eklon/NetSuite/Venturus/Studies/gulpfile.js:1:1)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at requireOrImport (/usr/local/lib/node_modules/gulp/node_modules/gulp-cli/lib/shared/require-or-import.js:19:11)
    at execute (/usr/local/lib/node_modules/gulp/node_modules/gulp-cli/lib/versioned/^4.0.0/index.js:37:3)
The terminal process "gulp 'build-and-upload', '--file', '/eklon/NetSuite/Venturus/Studies/gulpfile.js'" terminated with exit code: 1.

Terminal will be reused by tasks, press any key to close it.

我该如何解决?

您应该将 requite 更改为 require

require('./node_modules/@hitc/netsuite-tools/gulptools')
.setupHITCGulp(require('gulp'));

requite 不是您应该使用的关键字 require

require 函数旨在向当前范围添加单独的代码片段(“模块”),这一功能直到 ES2015 规范才成为 JavaScript/ECMAScript 语言的一部分。

因此,此函数不是 ReactJS 特有的,也不是该语言的一部分,这就是当您尝试在普通浏览器环境中使用它时 Firefox 会抛出错误的原因。

使用 require 同步加载模块通常是称为 CommonJS 的方法的一部分(有关模块格式的更多信息,请参阅此答案)。虽然 Node.js 之类的环境提供了与此规范类似的模块 API,但浏览器却没有;所以必须自己带功能

这样做的选项有很多,您可以选择最适合您的工作流程和个人品味的选项。但总的来说,模式归结为:

在浏览器中显式使用模块加载器:使用标签,带上加载器,例如SystemJS,并立即使用它来加载您自己的代码。 将代码捆绑到单个脚本:使用 Browserify、Webpack 或 JSPM 等捆绑器,并使用单个标记加载结果。捆绑器自带模块加载器。