我从lesscss开始,我不想使用一些GUI工具,只是命令行。
我的结构如下
根
---少了
--- css
我想将所有较少的文件编译到css文件夹中。怎么做到这一点?
提前致谢!
答案 0 :(得分:3)
默认情况下,可以通过运行npm install less
安装的命令行编译器(lessc)将单个Less文件编译为single.css文件。
根据项目的结构和Less文件,您应该选择如何编译所有Less文件。
当您想将每个Less文件编译成CSS文件时,您可以编写一些命令行脚本来迭代您的文件并通过调用lessc编译器来编译每个文件。可能你最好考虑使用一个任务运行器,例如gulp-less或grunt-contribe-less。
在大多数情况下,不同文件中的Less代码是相关的,一个文件定义变量,mixins在其他文件中使用,依此类推。对于这种情况,您可以创建一个project.less文件,用于导入其他文件:
project.less:
@import "variable.less";
@import "theme.less";
现在你必须只编译project.less
。您可以通过运行lessc project.less project.css
来执行此操作。上面的命令再次将Less代码编译为单个CSS。
回答你的问题只是理论问题,当你的Less文件不依赖于彼此而你只想将它们全部编译成一个CSS文件时,你可以运行(在linux / unix上):
paste -s less/*.less | lessc - > css/project.css
答案 1 :(得分:2)
您可以浏览this doc。虽然,我会解释一下。
安装$ npm install -g lessc-each
包
$ lessc-each ‹dir1› ‹dir2›
然后,在命令行中
ctx.filter
其中
请参阅上面给出的链接,因为还有一些限制,例如文件名,因为文件名以双下划线(__)开头不会被编译。
答案 2 :(得分:0)
我找到了这个问题,当我寻找类似任务的解决方案时,这是我最后的shell命令,用于编译:
ls PATH_TO_LESS/*.less | xargs -I {} echo "printf 'Start compile file {}' &&" node_modules/less/bin/lessc --clean-css --relative-urls {} "{}# && echo ' - DONE'" | sed 's/\.less#/.css/g' | bash
此命令将所有较少的文件从给定路径编译到同一路径,并替换扩展名" less" => " CSS"
它有点长,所以如果有必要,我可以解释一下。
没有信息日志输出的简化命令相同:
ls PATH_TO_LESS/*.less | xargs -I {} echo node_modules/less/bin/lessc --clean-css --relative-urls {} "{}# | sed 's/\.less#/.css/g' | bash
对我来说,最好的解决方案是你可以使用纯npm作为任务管理器,而不需要像gulp或grunt这样的任何其他依赖。我希望它有所帮助。