私はgulpを初めて使用しており、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上でローカルに実行すると、うまく動作します。ノードとそれによって設定された私は、PATH変数を確認し npm : the term 'npm' is not recognized as the name of a cmdlet..
:
しかし、このプロジェクトは、MSBuildので構築されたときに、同じビルド後のイベントが動作しない、それが下の画像に示され、次のメッセージを表示します正しい。また私がノード-v私のcmdに私がノードのバージョンがインストールされていることがわかりましたが、私はmsbuildコマンドラインでそれを行うときにノードを識別することができませんでした。
私は任意のヘルプ/この問題に関するアドバイス、感謝を申し上げ参照 https://www.niclassahlin.com/2015/04/10/running-gulp-during-tfs-build/
としてこのブログを使用していました。
私はこの問題の原因を正確に知っていると思います。 MSBuildはソリューションを常に管理者として構築しますが、nodejsのインストールスコープはユーザープロファイルに限定されているので、管理者アカウントにインストールする方法を見つける必要があります。 –