我正在尝试在VSO托管构建 Controller 上进行Aurelia的构建。我创建了一个小的powershell脚本来运行以下命令

npm install
.node_modules/.bin/jspm cc
.node_modules/.bin/jspm install -y
.node_modules/.bin/gulp build

我确实有AfterBuild目标,可以将jspm_packages和dist文件夹复制到我的_publishedWebsites文件夹中。

npm install运行正常,但是涉及到jspm cc(如果我删除了jspm cc并让它运行jspm install -y),则尝试执行此操作将失败
jspm cc

          Migrating global jspm folder from C:\Users\buildguest\.jspm to C:\Users\buildguest\AppData\Local\.jspm...
          Copying configuration...

     err  Error migrating to new jspm folder
 2>EXEC : error : ENOENT, no such file or directory 'C:\Users\buildguest\.jspm\config' [d:\a\src\WebGUI\OwinAureliaScaffold\OwinAureliaScaffold.csproj]
              at Object.fs.openSync (evalmachine.<anonymous>:427:18)
              at Object.fs.readFileSync (evalmachine.<anonymous>:284:15)
              at Object.<anonymous> (d:\a\src\WebGUI\OwinAureliaScaffold\public\node_modules\jspm\lib\global-config.js:36:24)
              at Module._compile (module.js:456:26)
              at Object.Module._extensions..js (module.js:474:10)
              at Module.load (module.js:356:32)
              at Function.Module._load (module.js:312:12)
              at Module.require (module.js:364:17)
              at require (module.js:380:17)
              at Object.<anonymous> (d:\a\src\WebGUI\OwinAureliaScaffold\public\node_modules\jspm\lib\registry.js:19:20)
     ok   Loader file cache cleared.
     ok   Package cache cleared.

我确实知道jspm不是全局安装的,因为它是托管 Controller ,所以我无法真正在全局安装它。我的问题是,如何在不安装全局jspm的情况下完成此工作?有没有一种解决方法,它不必迁移配置文件?

最佳答案

即使您无法在托管的构建代理上安装和运行jspm CLI,也可以通过节点本身运行jspm。

首先,请确保已安装jspm-您的powershell脚本会执行此操作。另外,您可以使用VSO Build的“npm安装任务”,只要jspm在package.json文件中即可。
azure-devops - Aurelia在VSO托管构建 Controller 上构建-LMLPHP

我使用Gulp通过node执行jspm。我不确定这是否是执行此步骤的最佳方法,但它是否有效...我使用了VSO的“Gulp任务”

azure-devops - Aurelia在VSO托管构建 Controller 上构建-LMLPHP

以下是gulpfile.js中的相关位:

var gulp = require('gulp'),
    exec = require('child_process').exec;

//#region Build Tasks
gulp.task('build:jspm', function (cb) {
    exec("node ./node_modules/jspm/jspm.js install", function(err, stdout, stderr) {
        console.log(stdout);
        console.error(stderr);
        cb(err);
    });
});

gulp.task('_build', ['build:jspm']);

关于azure-devops - Aurelia在VSO托管构建 Controller 上构建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30101421/

10-13 06:00