Npm 如何在深度嵌套的目录结构上使用节点sass?

Npm 如何在深度嵌套的目录结构上使用节点sass?,npm,sass,node-sass,Npm,Sass,Node Sass,当从命令行使用时,节点sass的文档无疑有点过于简单。我目前对使用NPM脚本作为构建工具感兴趣 我有一个项目,它有许多按功能组织的组件。每个功能都是一个单独的文件夹。较大的组件包含较小的组件,其中任何数量的组件都有自己的.scss文件 我遇到的问题是,文档不清楚如何使用node sass轻松地将所有这些文件编译成一个文件 有一种方法可以从一个目录编译.scss文件并放入另一个目录中,但这会将它们作为单独的文件保存。还有一个建议是使用catcat | node sass>,但是cat不是递归的,也

当从命令行使用时,节点sass的文档无疑有点过于简单。我目前对使用NPM脚本作为构建工具感兴趣

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

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

有一种方法可以从一个目录编译
.scss
文件并放入另一个目录中,但这会将它们作为单独的文件保存。还有一个建议是使用cat
cat | node sass>
,但是
cat
不是递归的,也不使用globs,因此您最多可以获得一级css


有没有一种方法可以使用node sass,这样它就可以递归地查看给定目录中的所有文件,并将它们编译成单个css样式表?

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

您可以使用
find
递归地查找所有正确的文件,然后将输出到
cat
,这将所有文件放在一起,最后到
节点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确实有一个递归选项,但是当前的文档说这只是为了观察。关于此选项有很多问题,但有一些原因说明了为什么多文件编译不是目标功能(sourcemaps等):/


我个人希望有更多的工具具有更好或更高级的文件处理能力,并让我将所有监视任务委托给一个脚本,如
npm script watcher
。它监视并触发脚本,就是这样。一次文件更改可以触发一次运行lint、build和test。它似乎比linter的watcher标志、builder的watcher标志和tester的watcher标志要好,然后为每种情况复制脚本,以防我只想运行lint、build或test一次而不启动其监视功能。

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

您可以使用
find
递归地查找所有正确的文件,然后将输出到
cat
,这将所有文件放在一起,最后到
节点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确实有一个递归选项,但是当前的文档说这只是为了观察。关于此选项有很多问题,但有一些原因说明了为什么多文件编译不是目标功能(sourcemaps等):/

我个人希望有更多的工具具有更好或更高级的文件处理能力,并让我将所有监视任务委托给一个脚本,如
npm script watcher
。它监视并触发脚本,就是这样。一次文件更改可以触发一次运行lint、build和test。它似乎比linter的watcher标志、builder的watcher标志和tester的watcher标志更好,然后为每种情况复制脚本,以防我只想运行lint、build或test一次而不启动其监视功能