Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compiler construction LESS:合并并缩小所有导入文件的编译器_Compiler Construction_Less - Fatal编程技术网

Compiler construction LESS:合并并缩小所有导入文件的编译器

Compiler construction LESS:合并并缩小所有导入文件的编译器,compiler-construction,less,Compiler Construction,Less,我有一个由.less文件组成的复杂嵌套树,它被组织为一个main.less文件,该文件使用@import子句导入其他几个辅助文件。在某些情况下,这些文件会导入其他文件 目前我处于开发模式,文件在运行时由LESS.JS编译器编译,但在生产环境中,我希望编译一次所有文件,并可能合并所有文件。如何获得这个 我的意图是: 当我准备好进行生产时,将main.less路径传递给编译器 编译器分析main.less,如果遇到@import子句,则跟随链接并编译导入的文件 这应该对所有文件进行迭代 最后,我希望

我有一个由.less文件组成的复杂嵌套树,它被组织为一个main.less文件,该文件使用@import子句导入其他几个辅助文件。在某些情况下,这些文件会导入其他文件

目前我处于开发模式,文件在运行时由LESS.JS编译器编译,但在生产环境中,我希望编译一次所有文件,并可能合并所有文件。如何获得这个

我的意图是:

  • 当我准备好进行生产时,将main.less路径传递给编译器
  • 编译器分析main.less,如果遇到@import子句,则跟随链接并编译导入的文件
  • 这应该对所有文件进行迭代
  • 最后,我希望只有一个大的.css文件,它是所有单个.less文件的合并(可能最小化)
  • 我尝试了SimpLESS编译器,但它并没有生成我所要求的….

    我发现它工作得很好,即使它不是图形化的,而是基于shell的。 它在编译时几乎是即时的,并且在我的less代码中不会返回错误(与我使用相同代码测试的所有其他图形工具不同,例如WinLess和SimpLess)


    它非常类似于“node.js-based”编译工具,但不需要安装任何其他包。只需下载并单独使用即可。唯一的缺点是,上一次更新是从2014年初开始的,所以它可能已经过时了。关于语言的最后一个新功能,我可能在这里遗漏了一些东西,但您所描述的“意图”应该是任何较少的编译器所提供的默认值。在编译
    main.less
    时,它应该生成一个与您描述的完全相同的
    main.css
    ,所有
    @import
    子句都解析为css,并且它们位于
    main.less
    中。取而代之的是什么(缺少了什么)?阅读这里,我发现我必须只加载SimpLESS main.less,而不是整个项目文件夹,才能编译一个大的.css文件。无论如何,奇怪的是,它能在导入的文件中显示语法错误,.JS运行时编译器能正确编译。。。。非常奇怪,它关注的是这种语法:NTH子(@ {NoMyByObjs}N+1),Simple只使用过时的更少版本(即考虑使用一些或多或少的最新替代品)。谢谢。您有什么建议?使用与LESS捆绑的命令行编译器<代码>npm安装-g更少