2016-03-28 85 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安装范围仅限于用户配置文件,所以现在我需要找到一种方法将其安装在管理员帐户中。 –

回答

相关问题