Gulp任务ReferenceError:未定义requite-

问题描述

我正在尝试设置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之类的打包器,并使用单个标签加载结果。捆绑器会带来自己的模块加载器。