如何编译保存在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
。 这将安装less
和grunt-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
下右键单击,然后转到Bindings
并After 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并重新打开项目。 看起来你必须在每次开始观看项目时都运行(双击)“观看”(在“任务”下),然后在随后的保存中运行。