在VS2015中使用gulp在ASP.NET 4.5.2 MVC项目中编译LESS

gld*_*ael 8 asp.net-mvc npm gulp visual-studio-2015

我尝试了新的ASP.NET vNext,我真的很喜欢gulp的工作方式.我正在尝试使用gulp在ASP.NET 4.5.2 MVC项目中编译LESS.

我跟着这个寻求帮助.
这是我到目前为止所做的:

添加了包含以下代码的package.json文件.

{
  "name": "package",
  "version": "1.0.0",
  "private": true,
  "devDependencies": {
    "gulp": "3.9.0",
    "gulp-bower": "0.0.10",
    "gulp-config": "0.3.0",
    "gulp-less": "3.0.3",
    "gulp-plumber": "1.0.1"
  }
}
Run Code Online (Sandbox Code Playgroud)

在gulpfile.js中创建了一个Gulp任务

var gulp = require('gulp');
var less = require('gulp-less');
var path = require('path');
var plumber = require('gulp-plumber');
gulp.task('less', function () {
    return gulp.src('./Content/**/*.less')
    .pipe(plumber())
      .pipe(less({
          paths: [path.join(__dirname, 'less', 'includes')]
      }))
      .pipe(gulp.dest('./content/'));
});
Run Code Online (Sandbox Code Playgroud)

但后来我得到以下错误(在输出窗口中):

无法运行"C:\ Users\me\documents\visual studio 2015\Projects\projectname\Gulpfile.js"... cmd.exe/c gulp --tasks-simple'gulp'未被识别为内部或外部命令,可操作程序或批处理文件.

我猜npm不要下载gulp.知道如何让这个工作吗?

Joe*_*vis 9

您不需要全局安装Gulp以在Visual Studio 2015中使用它.当Gulp通过npm安装到项目中时,它会将gulp.cmd添加到项目中的文件夹(默认情况下为./node_modules/.bin).默认情况下,Visual Studio在其查找外部工具(如Grunt,Gulp,Bower和npm)的路径中包含该路径.这是可配置的Tools->Options->Projects And Solutions->External Web Tools.

我的猜测是,当你第一次创建package.json文件时,npm没有成功安装软件包.每当您保存package.json文件时,Visual Studio将为npm install您的项目运行,因此您甚至不需要打开控制台窗口.但是,如果您将现有的package.json文件添加到项目中,则不会自动为您安装.在这种情况下,您需要npm install自己运行,或者打开并保存文件以让VS为您执行此操作.


gld*_*ael 7

npm install在Package Manager控制台中键入将向项目添加node_modules文件夹.package.json文件中指定的所有依赖项都将添加到该文件夹​​中.

在这种情况下,现在已经安装了gulp,错误应该消失了.