是否有可能使用gruntjs和/或lesscss将所有的CSS放在一行?
所有的.js和.less文件都是在我的项目中用gruntjs(内置.js支持)和grunt-less-contrib插件在.less文件中完成的。
一时间,lesscss以一种每行定义的方式压缩css,比如下面的.less文件:
div,span,textarea,input { margin:0; }
它会输出:
div, span, textarea, input { margin:0; }
我想压缩所有的CSS到一行,对于这个例子,它应该是这样的:
div,span,textarea,input{margin:0;}...other styles...
可能吗? 任何build议都会有所帮助,我不确定这是一个直接的问题。
也许可以在构buildbuild.css之后添加一个任务,然后执行串联?
grunt-contrib-less插件也足以缩小编译的CSS。 你不需要另一个插件来缩小你的代码。
它有两个特定于这个用例的选项:
-
压缩(将删除一些空格):
less: { compile: { options: { paths: ["foo/bar/css"], compress: true }, files: { "path/to/result.css": "path/to/source.less" } } }
-
yuicompress(将通过CSS内部运行你的CSS):
less: { compile: { options: { paths: ["foo/bar/css"], yuicompress: true }, files: { "path/to/result.css": "path/to/source.less" } } }
所以在你的情况下,“yuicompress”将是正确的事情添加到你的gruntfile。
你可以使用模块grunt-css
用grunt.js
来缩小你的CSS文件
- 用
npm install grunt-css --save-dev
安装模块 -
使用grunt.loadNpmTasks('grunt-css')将模块加载到
grunt.js
或Gruntfile.js
(取决于使用的grunt版本); -
将
Gruntfile.js
的任务configuration为,grunt.initConfig({ less: { //YOUR LESS CONFIG }, cssmin: { YOUR_TARGET: { src: 'SRC_PATH/input.css', dest: 'DEST_PATH/output.min.css' } } });
-
您可以使用以下configuration合并和缩小多个css文件,
grunt.initConfig({ less: { //YOUR LESS CONFIG }, cssmin: { YOUR_TARGET: { src: 'SRC_PATH/**/*.css', dest: 'DEST_PATH/output.min.css' } } });
-
用grunt构build任务注册你的任务,在较less的任务之后运行,
grunt.registerTask('default', ['less', 'cssmin'])
-
现在你可以运行
grunt build
或者grunt cssmin
来生成缩小的CSS文件。
grunt-css
模块内置了csslint
,所以你也可以添加一个任务来提升你的css文件。
可以在https://github.com/jzaefferer/grunt-cssfind更多configuration/选项