簡體   English   中英

如何在UIAutomation中使用節點模塊

[英]How to use node modules with in UIAutomation

根據apple的文檔,我可以使用import語句將一個JS文件導入到另一個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文件中包含/要求它們。

不得不為Faker做兩件事讓我工作

  1. 刪除'use strict'
  2. 檢查窗口是否未定義
  3. 添加此聲明

    這個['Faker'] = Faker;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM