如何编译保存在Visual Studio 2015中的.less文件(预览)

好的,所以我在Visual Studio 2015 Preview中创build了一个新的ASP.Net 5 / MVC 6项目。 按照我们目前的做法,为了造型我想使用.less文件。 创build文件很简单,但Web Essentials不再编译它们。

所以我的问题是这样的:当我保存.less文件时,我需要做些什么才能使我的.css文件生成?

根据我的冒险得到Typescript很好地工作,我将不得不使用Grunt来完成这项任务,但我是Grunt全新的,所以我不知道该怎么做呢?

请帮忙!

所以这里是如何做到这一点(编译上编译和非优雅编译保存):

步骤1

打开你的package.json文件(它位于你的项目的根目录下)并添加下面的代码:

 "grunt-contrib-less": "^1.0.0", "less": "^2.1.2" 

显然,你可以改变版本号(你会得到有益的intellisense),这些只是当前的版本。

第2步

右键单击NPM文件夹( Dependencies下),然后单击Restore Packages 。 这将安装lessgrunt-contrib-less

第3步

一旦这些软件包被恢复,转到您的gruntfile.js文件(再次,在项目的根目录)。 在这里,您需要将以下部分添加到grunt.initConfig

 less: { development: { options: { paths: ["importfolder"] }, files: { "wwwroot/destinationfolder/destinationfilename.css": "sourcefolder/sourcefile.less" } } } 

你还需要在gruntfile.js的末尾添加这行:

 grunt.loadNpmTasks("grunt-contrib-less"); 

步骤4

然后去菜单中的查看View->Other Windows->Task Runner Explorer窗口View->Other Windows->Task Runner Explorer点击刷新图标/button,然后在Tasks下右键单击,然后转到BindingsAfter Build打勾。

万岁,现在less文件将编译和我们(一)了解咕噜,这似乎真的很强大。

第5步:编译保存

我还没有得到满意的结果,但是到目前为止,

如上所述,添加另一个NPM软件包grunt-contrib-watch (添加到package.json,然后恢复软件包)。

然后在gruntfile.js中添加一个watch部分,就像这样(显然这也可以用于其他types的文件):

 watch: { less: { files: ["sourcefolder/*.less"], tasks: ["less"], options: { livereload: true } } } 

所以你现在在你的gruntfile.js中有这样的东西:

 /// <binding AfterBuild='typescript' /> // This file in the main entry point for defining grunt tasks and using grunt plugins. // Click here to learn more. http://go.microsoft.com/fwlink/?LinkID=513275&clcid=0x409 module.exports = function (grunt) { grunt.initConfig({ bower: { install: { options: { targetDir: "wwwroot/lib", layout: "byComponent", cleanTargetDir: false } } }, watch: { less: { files: ["less/*.less"], tasks: ["less"], options: { livereload: true } } }, less: { development: { options: { paths: ["less"] }, files: { "wwwroot/css/style.css": "less/style.less" } } } }); // This command registers the default task which will install bower packages into wwwroot/lib grunt.registerTask("default", ["bower:install"]); // The following line loads the grunt plugins. // This line needs to be at the end of this this file. grunt.loadNpmTasks("grunt-bower-task"); grunt.loadNpmTasks("grunt-contrib-less"); grunt.loadNpmTasks("grunt-contrib-watch"); }; 

然后,可以简单地将此任务设置为在“打开项目”(Project Open)上运行(右键单击Task Runner Explorer中的“ Task Runner Explorer下的watch (位于顶部菜单的“ View->Other Windows下),然后就完成了。必须closures并重新打开项目/解决scheme才能使用此function,否则可以手动运行该任务。

随着VS 2015 Web Essential被分成多个扩展,您可以从这里下载Web编译器扩展,它也有如何使用它的细节。

它以前肯定不是很优雅,但如果你正在使用现有的项目,并且想为LESS使用一个编译器,那么这可能会做基本的工作。

(注意: 这里直接提到了一个关于sass的新问题,我试图改变这个问题中的问题和标签,包括sass,但是有人不允许。)

我想为sass(.scss)的相同问题添加答案。 答案是如此相关,我认为这些可能最好在这个相同的职位合并为两个答案( 如果你不同意,请让我知道,否则,我们可能会在post标题中添加“或sass” )。 因此,请参阅Maverick的一些更全面的细节,下面是sass的简介:

(空项目的前置步骤)如果您从一个空项目开始,首先添加Grunt和Bower:

右键点击解决scheme – >添加 – >'Grunt and Bower to Project'(然后等待一分钟就可以完成安装)

的package.json:

 "devDependencies": { "grunt": "^0.4.5", "grunt-bower-task": "^0.4.0", "grunt-contrib-watch": "^0.6.1", "grunt-contrib-sass": "^0.9.2" } 

(FYI: grunt-contrib-sass链接 )

然后:

依赖项 – >右键点击NPM – >还原包。

gruntfile.js

1)添加或确保这三行注册在底部附近(作为NPM任务):

 grunt.loadNpmTasks("grunt-bower-task"); grunt.loadNpmTasks("grunt-contrib-watch"); grunt.loadNpmTasks("grunt-contrib-sass"); 

2)再次在gruntfile.js中,添加initconfiguration,如下所示。

{注意:我不是这种configuration的专家。 我在前段时间在一篇出色的博客文章中发现了sassconfiguration,我不能在这个时候find信誉。 关键是我想在某个文件夹(加上后代)内find项目中的所有文件。 下面这样做(注意"someSourceFolder/**/*.scss" ,并在这里看到重要的相关说明 )。 }

 // ... after bower in grunt.initConfig ... "default": { "files": [ { "expand": true, "src": [ "someSourceFolder/**/*.scss" ], "dest": "wwwroot/coolbeans", // or "<%= src %>" for output to the same (source) folder "ext": ".css" } ] }, "watch": { "sass": { "files": [ "someSourceFolder/**/*.scss" ], "tasks": [ "sass" ], "options": { "livereload": true } } } 

现在按照其他答案中给出的任务运行资源pipe理器的说明。 确保closures并重新打开项目。 看起来你必须在每次开始观看项目时都运行(双击)“观看”(在“任务”下),然后在随后的保存中运行。