根据苹果的文档,我可以使用 import 语句将一个 JS 文件导入另一个文件。是的,我能够使用 JS 函数并递归调用其他 JS 函数。
但是我可以将节点模块包含在我的自动化中吗?Node/ npm模块似乎有很多工具可以让生活更轻松并避免代码重复。
实际上,我可以通过代码中的以下调用来使用一个名为moment.js的节点模块
#import "../node_modules/moment/moment.js"
但我对其他 npm 模块没有同样的运气。我尝试了几个 Faker.js,Charlatan.js并且我在 Faker.js 中收到以下错误
脚本抛出一个未捕获的 JavaScript 错误:找不到变量:Faker.js 的第 618 行上的窗口
查看 *.js 文件似乎与这些模块的打包方式有关。我的 JS 知识并没有让我到任何地方。
时刻js文件的最后几行
// CommonJS module is defined
if (hasModule) {
module.exports = moment;
}
/*global ender:false */
if (typeof ender === 'undefined') {
// here, `this` means `window` in the browser, or `global` on the server
// add `moment` as a global object via a string identifier,
// for Closure Compiler "advanced" mode
this['moment'] = moment;
}
/*global define:false */
if (typeof define === "function" && define.amd) {
define("moment", [], function () {
return moment;
});
}
Faker js文件的最后几行
if (typeof define == 'function'){
define(function(){
return Faker;
});
}
else if(typeof module !== 'undefined' && module.exports) {
module.exports = Faker;
}
else {
window.Faker = Faker;
}
我完全能够在节点控制台中使用这些模块,所以这些模块没有问题,它只是如何在我的 JS 文件中包含/要求它们。