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 等捆绑器,并使用单个标记加载结果。捆绑器自带模块加载器。
我正在尝试设置 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 等捆绑器,并使用单个标记加载结果。捆绑器自带模块加载器。