【问题标题】:npm does not work with msbuildnpm 不适用于 msbuild
【发布时间】:2016-04-04 16:35:40
【问题描述】:

我是 gulp 的新手,在将它与 msbuild 集成时遇到了问题。我正在尝试使用 gulp 运行任务(例如:缩小文件),即使它在我构建项目时运行良好,但它无法在 msbuild 上运行。 这是 gulpfile.js 的代码:

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 上执行 node -v 时,我可以看到安装的节点版本,但是当我在 msbuild 命令行上执行此操作时,它无法识别节点。

我用这个博客作为参考 https://www.niclassahlin.com/2015/04/10/running-gulp-during-tfs-build/

感谢您就此事提供任何帮助/建议,谢谢。

【问题讨论】:

  • 我想我知道究竟是什么导致了这个问题。 MSBuild 始终以管理员身份构建解决方案,但 nodejs 安装范围仅限于用户配置文件,所以现在我需要找到一种方法在管理员帐户中安装它。

标签: node.js tfs msbuild npm gulp


【解决方案1】:

您可以使用Node.js installer 安装npm,之后npm 将可供所有用户使用。

【讨论】:

    猜你喜欢
    • 2017-09-29
    • 1970-01-01
    • 2014-11-10
    • 2011-02-16
    • 2021-10-12
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 2018-02-08
    相关资源
    最近更新 更多