2013-02-26 1 views
3

Согласно apple documentation Я могу импортировать один JS-файл в другой с помощью инструкции import. И да, я могу использовать JS-функции и рекурсивно вызывать другие JS-функции.Как использовать узловые модули с в UIAutomation

Но могу ли я включить модули узла в свою автоматизацию. У узла/npm, похоже, есть много инструментов, которые облегчают жизнь и избегают дублирования кода.

И на самом деле я был в состоянии использовать один модуль узел, называемый moment.js через следующий вызов в моем коде

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

Но я не один и тот же удачи с другими модулями NPM. Я попробовал пару Faker.js, Charlatan.js и я получаю следующее сообщение об ошибке в Faker.js

Script threw an uncaught JavaScript error: Can't find variable: window on line 618 of Faker.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; 
    }); 
} 

Последних несколько строк Факер расслоения плотного файла

if (typeof define == 'function'){ 
    define(function(){ 
     return Faker; 
    }); 
} 
else if(typeof module !== 'undefined' && module.exports) { 
    module.exports = Faker; 
} 
else { 
    window.Faker = Faker; 
} 

Я совершенно в состоянии, чтобы играть с этими модулями в консоли узла, так что ничего плохого модули, это просто, как включить/потребовать их в моих JS-файлах.

ответ

2

бы сделать две вещи для Faker работать для меня

  1. Удалить «использовать строгий»
  2. Проверьте, если окно не определено
  3. Добавить это заявление

    это [ «Факер» ] = Фейкер;