Javascript文件加载没有窗口/文档的其他Javascript文件

时间:2018-12-05 12:41:59

标签: javascript jquery tfs jsdom

我正在使用没有窗口或文档的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。 有什么想法吗?

0 个答案:

没有答案