5

VSO Hosted Build Controller で Aurelia のビルドを実行しようとしています。次のコマンドを実行する小さなpowershellスクリプトを作成しました

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

jspm_packages フォルダーと dist フォルダーを _publishedWebsites フォルダーにコピーするための AfterBuild ターゲットがあります。

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 はホストされたコントローラーであるため、グローバルにインストールされないことを理解しています。実際にはグローバルにインストールできません。私の質問は、グローバル jspm をインストールせずにこれをどのように処理するのですか? 構成ファイルを移行する必要がない回避策はありますか?

4

3 に答える 3

2

jspm はホストされたコントローラーであるため、グローバルにインストールされないことを理解しています。実際にはグローバルにインストールできません。

これは正しくないようです (少なくとも現在は)。jspm をホストされたコントローラーにグローバルにインストールできます。

次のようなビルドプロセスでこれを解決できました。

ビルド手順

  1. npm インストール
  2. npm インストール -g jspm
  3. node C:\NPM\Modules\node_modules\jspm\jspm.js インストール

1) package.json からすべてのローカル依存関係をインストールします。2) JSPM のグローバル バージョンをインストールします 3) グローバル インストール場所から呼び出します

M Falangaの回答から、ノードは明らかにコントローラーのパスにあるため、Powershell/コマンドラインから呼び出すことができることに気付きました。ビルドのデバッグ ログを見て見つけたグローバル JSPM インストールの場所。実装者への注意として、手順 1 と 3 の作業ディレクトリが package.json がある場所に設定されていることを確認してください。

代替ソリューション

ビルドでこの次のオプションをまだテストしていませんが、追加のビルド手順をスキップして、NPM のスクリプト機能を使用して JSPM インストールを実行できるはずです。この場合、上記の NPM のインストール手順もノードの実行手順も必要ありません。

package.json には、次のスクリプト エントリが必要です。

  "keywords": [...],
  "scripts": {
    "postinstall": "./node_modules/.bin/jspm install -y"
  },
  "jspm": {...
于 2016-07-08T16:19:56.917 に答える