根据apple的documentation,我可以使用import语句将一个JS文件导入到另一个JS文件中。是的,我能够使用JS函数并递归调用其他JS函数。
但是我可以将节点模块包含到我的自动化中。 Node / npm模块似乎有很多工具可以让生活更轻松,避免代码重复。
实际上,通过我的代码中的以下调用,我能够使用一个名为moment.js的节点模块
#import "../node_modules/moment/moment.js"
但我与其他npm模块没有相同的运气。我试了几次Faker.js,Charlatan.js,我在Faker.js中收到以下错误
脚本抛出一个未被捕获的JavaScript错误:找不到变量:window 在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文件中包含/要求它们。
答案 0 :(得分:2)
要为Faker为我工作做两件事
添加此声明
这['Faker'] = Faker;