[英]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.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文件中包含/要求它們。
不得不為Faker做兩件事讓我工作
添加此聲明
這個['Faker'] = Faker;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.