我正在使用没有窗口或文档的javascript文件。 我有package.json文件,该文件调用了另一个Javascript文件task.js package.json:
{
"name": "mytask",
"version": "1.0.0",
"description": "mytask TFS Build",
"main": "scripts/mytask.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"install": "npm install"
},
"repository": {},
"author": "OST",
"license": "ISC",
"dependencies": {
"https-proxy-agent": "1.0.0",
"jquery": "3.3.1",
"jsdom": "13.0.0",
"load-json-file": "^2.0.0",
"moment": "^2.22.2",
"object.values": "^1.0.4",
"request": "2.81.0",
"vso-node-api": "^5.1.2",
"vss-web-extension-sdk": "5.141.0",
"vsts-task-lib": "1.1.0"
}
}
TFS调用javascript文件存在于package.json的“ main”选项中。 package.json通过“ main”选项调用mytask.js,此javascript文件将作为任务在TFS中运行,并将其打印到控制台。
基本上我的问题是没有HTML页面或文档,所以我无法通过或document.addElement ...加载javascript文件。
我需要将JavaScript文件(来自vss-web-extension-sdk的VSS.SDK.js)加载到mytask.js。 我是javascript新手,所以我真的不知道自己在做什么错。 经过长时间的搜索,我发现“ jsdom”创建了一个全局文档。但是仍然不知道如何加载VSS.SDK.js脚本。
mytask.js:
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM(`<!DOCTYPE html>`);
var jQuery = require("jquery")(window);
// Option 1
jQuery.loadScript = function (url, callback) {
jQuery.ajax({
url: url,
dataType: 'script',
success: callback,
fail: callback,
async: false
});
}
jQuery.loadScript('vss-web-extension-sdk/lib/VSS.SDK.js', function(){console.log("loaded!!!!!!!!!!!!!!!!!!!!")});
// Option 2
jQuery.getScript('vss-web-extension-sdk/lib/VSS.SDK.js').done(function(){console.log("loaded!!!!!!!!!!!!!")}).fail(function(){console.log("failed!!!!!!!!!!!!!!")});
// Option 3
jQuery.getScript('vss-web-extension-sdk/lib/VSS.SDK.js', function() {
VSS.init({explicitNotifyLoaded: true, usePlatformScripts: true, usePlatformStyles: false});
var serverContext = VSS.getWebContext();
});
我尝试了这三个选项,但没有成功!什么都没打印。
我使用VSS.SDK加载webContext。 有什么想法吗?