Gulp任务引用错误:未定义请求-



我正在尝试设置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

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

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

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

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

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

有很多选择,你可以选择最适合你的工作流程和个人品味的。但总的来说,模式可以归结为以下两种:

在浏览器中明确使用模块加载程序:使用标签,带来一个加载程序,如SystemJS,并立即使用它来加载您自己的代码。将代码绑定到一个单独的脚本中:使用诸如Browserify、Webpack或JSPM之类的绑定器,并使用单个标记加载结果。bundler自带模块加载程序。

最新更新