3

根据苹果的文档,我可以使用 import 语句将一个 JS 文件导入另一个文件。是的,我能够使用 JS 函数并递归调用其他 JS 函数。

但是我可以将节点模块包含在我的自动化中吗?Node/ npm模块似乎有很多工具可以让生活更轻松并避免代码重复。

实际上,我可以通过代码中的以下调用来使用一个名为moment.js的节点模块

#import "../node_modules/moment/moment.js"

但我对其他 npm 模块没有同样的运气。我尝试了几个 Faker.jsCharlatan.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 文件中包含/要求它们。

4

1 回答 1

2

必须为Faker做两件事才能为我工作

  1. 删除“使用严格”
  2. 检查窗口是否未定义
  3. 添加此语句

    this['Faker'] = 伪造者;

于 2013-02-26T23:36:48.160 回答