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