如何在深度嵌套的目录结构上使用node-sass?

科布勒

从命令行使用node-sass的文档时,一定要使其简单一些。我目前对使用NPM脚本作为构建工具感兴趣。

我有一个项目,其中包含按功能组织的许多组件。每个功能都是一个单独的文件夹。有较大的组件包含较小的组件,并且这些组件中的任何一个都有自己的.scss文件。

我遇到的问题是文档尚不清楚如何使用node-sass轻松将所有这些文件编译为一个文件。

有一种方法可以将.scss文件从一个目录编译并放入另一个目录,但这会将它们保留为单独的文件。还有一个建议是使用catcat <input> | node-sass > <output>cat不递归,也不使用globs,因此您获得的最大收益就是一个级别的css值。

有没有一种使用node-sass的方法,以便它可以递归地浏览给定目录的所有文件并将它们编译成单个CSS样式表?

科布勒

到目前为止,我发现的最好方法是有点钝。

您可以find用来递归地找到所有正确的文件,然后将其输出到cat一起,将所有内容放在一起,然后最终node-sass输出到最终文件。

find src/apps/section -name '*.scss' -print0 | xargs -0 cat | node-sass > ./dist/css/section.css

理想情况下,node-sass应该接受一个glob并对其结果进行操作,但是它还不够成熟,或者团队没有专注于创建此功能。IMO,任何类型的编译器,无论是用于html模板,JS转译还是最小化,还是应能够接受glob并输出单个文件的任何编译器。似乎不算是一个极端情况...但是我知道什么。

Node-sass确实具有递归选项,但是当前文档说这仅用于观察。关于此选项进行讨论,但是有一些陈述了为什么多文件编译不是目标功能(源映射等)的原因。:/

我个人希望拥有更多具有更好或更高级文件处理能力的工具,并让我将所有观看任务委派给单个脚本,例如npm-script-watcher它监视并触发脚本,仅此而已。更改一个文件可以触发单次运行的皮棉,构建和测试。这似乎比对lint的监视者标志,对于构建器的监视者标志和对测试器的监视者好,然后为每个监视者重复脚本,以防万一我只想运行lint,构建或测试一次而不启动其监视功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章