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

时间:2015-07-28 00:04:46

标签: asp.net-mvc npm gulp visual-studio-2015

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

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

使用以下代码添加了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"
  }
}

在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/'));
});

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

  

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

我在猜npm din下载gulp。知道如何让这个工作吗?

5 个答案:

答案 0 :(得分:9)

您不需要全局安装Gulp以在Visual Studio 2015中使用它。当Gulp通过npm安装到项目中时,它会将gulp.cmd添加到项目中的文件夹(./node_modules/.bin by默认)。默认情况下,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为您执行此操作。

答案 1 :(得分:7)

在程序包管理器控制台中键入npm install会将node_modules文件夹添加到项目中。 package.json文件中指定的所有依赖项都将添加到该文件夹​​中。

在这种情况下,现在安装了gulp,错误就应该消失了。

答案 2 :(得分:2)

简短的回答是,要解决此错误,请使用以下命令全局安装gulp: npm install gulp -g

在VS2015中,必须在全球范围内安装RC gulp。否则VS不会认出它。您可以在此处找到详细说明:http://www.dotnetcurry.com/visualstudio/1096/using-grunt-gulp-bower-visual-studio-2013-2015

应该在VS2015 RTM中修复,但我还没有检查过。

不需要为单独的包运行npm install。如果启用隐藏文件夹,则应该看到VS在保存package.json文件后默认下载所有nodejs模块。下载日志可以在输出窗口中找到" Bower / NPM"在VS2015 RTM中。如果启用隐藏文件夹或查看Web项目目录,您应该看到一个node_modules文件夹,其中包含package.json文件中指定的所有包。

答案 3 :(得分:2)

在我的情况下,我需要移动

$(PATH) 

.\node_modules\bin

答案 4 :(得分:0)

我发现如果您在UNC路径上创建visual studio解决方案文件夹,则会发生此错误。

在虚拟机上使用Windows时,UNC路径通常会映射您的Documents文件夹(例如Parallels for Mac)。

要解决此问题,我将visual studio解决方案文件夹移至虚拟机磁盘驱动器,然后重新打开该项目。