gpt4 book ai didi

node.js - 在 Windows 中使用 shell 脚本递归合并和编译 SCSS 文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:44 24 4
gpt4 key购买 nike

情况是这样的。我目前的项目具有以下文件夹结构:

-- public_html
-- assets
-- scss (contains SCSS files, which can be located inside subfolders)
-- scripts
-- vendor
-- plugins (Also contain some SCSS files from the)
-- css
-- also some other folders (no scss or css here though)
-- dist (distribution folder)
-- other folders too for html, php etc...

当我想将脚本上传到远程服务器时,我首先将 public_html 中的完整文件夹结构处理到 dist 中。我使用构建脚本 build.sh 执行此操作,您可以在此处查看:

function prepareForBuild(){
echo "Updating dependencies...";
bower install

echo "Preparing 'dist' directory...";
mkdir -p dist
rm -rf dist/*
# for the stackoverflow markup... */
}

function buildApp(){
cd assets
echo "Creating temp directory..."
mkDir -p temp

## MERGING TAKES (OR SHOULD) PLACE HERE
find "/" -name '*.scss' -exec cat {} \; > merge.scss


cd ../
pause
# requirejs optimization
echo "Optimizing files...";
node r.js -o build/build.js
}

function cleanup(){
echo "Cleaning up unnecessary files...";
cd dist

rm -f bower.json .gitignore .bowerrc README.md .DS_Store config.rb
rm -f build.sh build.txt composer.json composer.lock
rm -rf build dist scss .git .sass-cache .idea
}

function pause(){
read -p "$*"
}

prepareForBuild
buildApp && cleanup

echo "Building finished!";
<小时/>

问题:

但是,当我在 Git bash 终端中运行脚本时,它会在这一行中断:

find "/" -name '*.scss' -exec cat {} \; > merge.scss

编辑:“/”或“\”似乎不会影响问题:(
另外,从根(public_html)目录运行:test run

它在正常命令提示符中返回“找不到文件 - *.scss”(并输出一个空的 merge.scss 文件),并且只是停止在 Git bash 终端中工作。我将此行基于 this答案,但我无法让它为我工作。我也尝试过类似 this相反,但这只会返回更多错误。我在这里缺少什么?

编辑!

我以为 bash shell 就停止工作了,但事实似乎并非如此。一段时间后它返回这个: Git Bash error这是什么意思?引用文件夹是否错误?

目标:

如前所述,我想递归扫描 Assets 文件夹中的 .scss 文件并将它们合并到一个 default.scss 中。

如果这太过分了,那就要求另一个与 require.js 集成(或简单地与 Node )集成的解决方案也是可能的,正如您在我的脚本中看到的那样,我已经使用 require.js 进行标准优化。

感谢您的时间和耐心!

最佳答案

如果要扫描assets目录下的文件,则不要在find命令中指定根目录。省略目录可能也是一个好主意。

find . -name "*.scss" -not -type d -exec cat {} \; > merge.scss

如果您希望在新创建的 temp 目录中创建 merge.scss 文件,则需要将其设为当前目录。然后,您可以从父目录 assets 进行文件扫描。

function buildApp(){
cd assets
echo "Creating temp directory..."
mkDir -p temp

## MERGING TAKES (OR SHOULD) PLACE HERE
cd temp
find .. -name '*.scss' -not -type d -exec cat {} \; > merge.scss

cd ../
pause
# requirejs optimization
echo "Optimizing files...";
node r.js -o build/build.js
}

此外,pause 命令在 bash shell 中对您有用吗?这是一个 Windows 命令,除非您有其他命令。

关于node.js - 在 Windows 中使用 shell 脚本递归合并和编译 SCSS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52917323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com