我是新人,我正面臨與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/
我希望在這個問題上的任何幫助/建議,謝謝。
我想我知道究竟是什麼導致了這個問題。 MSBuild始終構建解決方案,因爲admin,nodejs安裝範圍僅限於用戶配置文件,所以現在我需要找到一種方法將其安裝在管理員帳戶中。 –