2016-03-28 20 views
0

私はgulpを初めて使用しており、msbuildとの統合に問題があります。 gulpを使用してタスクを実行しようとしています(たとえば、ファイルのサイズを小さくしています)。プロジェクトをビルドすると完全に動作しますが、msbuildで実行できません。ここ はgulpfile.jsためのコードです:npmはmsbuildで動作しません

var gulp=require("gulp"), 
gutil=require("gulp-util"), 
uglify=require("gulp-uglify"), 
debug=require("gulp-debug"), 
concat=require("gulp-concat"); 
var uglifycss = require('gulp-uglifycss'); 
gulp.task("js",function(){ 
    gulp.src(["./**/*.js","!./**/*.min.*","!./**/gulpfile.js"]) 
    .pipe(uglify()) 
    .pipe(debug()) 
    .pipe(gulp.dest(function(file){return file.base})); 

gulp.task('css', function() { 
    gulp.src(["./**/*.css","!./**/*.min.*"]) 
    .pipe(uglifycss()) 
    .pipe(gulp.dest(function(file){return file.base})); 
}); 
gulp.task("build",["js","css"]); 
gulp.task('default', function(){ 
gulp.run('build'); 
}); 

これはPowerShellのスクリプトファイルcompileClient.ps1によって呼び出されます。

npm install -g gulp 
npm install --save-dev gulp gulp-util 
npm install --save-dev gulp-uglify gulp-concat 
npm install --save gulp-uglifycss 
npm install --save-dev gulp-debug 
gulp 
npm install -g rimraf 
cmd /c $env:APPDATA\npm\rimraf ./node_modules 

私はCMD上でこのコマンドを実行すると、

"%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe" -file "$(ProjectDir)compileClient.ps1" 

これは正常に動作し、ターゲットファイルを縮小します。私はその後、私のプロジェクトのポストビルドイベントにこのコマンドを入れてみました。そして、Visual Studio上でローカルに実行すると、うまく動作します。ノードとそれによって設定された私は、PATH変数を確認し npm : the term 'npm' is not recognized as the name of a cmdlet..

しかし、このプロジェクトは、MSBuildので構築されたときに、同じビルド後のイベントが動作しない、それが下の画像に示され、次のメッセージを表示します正しい。また私がノード-v私のcmdに私がノードのバージョンがインストールされていることがわかりましたが、私はmsbuildコマンドラインでそれを行うときにノードを識別することができませんでした。

私は任意のヘルプ/この問題に関するアドバイス、感謝を申し上げ参照 https://www.niclassahlin.com/2015/04/10/running-gulp-during-tfs-build/

としてこのブログを使用していました。

+0

私はこの問題の原因を正確に知っていると思います。 MSBuildはソリューションを常に管理者として構築しますが、nodejsのインストールスコープはユーザープロファイルに限定されているので、管理者アカウントにインストールする方法を見つける必要があります。 –

答えて

0

Node.js installerを使用してnpmをインストールすると、後ですべてのユーザーがnpmを利用できるようになります。

関連する問題