2016-03-28 42 views
0

我是新人,我正面臨與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本地運行它時,它也能正常工作。

然而,當該項目是由MSBuild的建立,同樣生成後事件不能正常工作,它給下面的圖片中顯示以下信息: npm : the term 'npm' is not recognized as the name of a cmdlet..

我檢查PATH變量的節點,並將其設置是正確的。另外,當我在我的cmd上執行節點-v時,我可以看到安裝的節點版本,但是當我在msbuild命令行上執行時,它無法識別節點。

我用這個博客作爲參考 https://www.niclassahlin.com/2015/04/10/running-gulp-during-tfs-build/

我希望在這個問題上的任何幫助/建議,謝謝。

+0

我想我知道究竟是什麼導致了這個問題。 MSBuild始終構建解決方案,因爲admin,nodejs安裝範圍僅限於用戶配置文件,所以現在我需要找到一種方法將其安裝在管理員帳戶中。 –

回答

相關問題