【发布时间】:2018-10-21 16:13:14
【问题描述】:
所以情况就是这样。我目前有以下文件夹结构的项目:
-- 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 * 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) 目录运行:
它在正常命令提示符“找不到文件 - *.scss”中返回(并输出一个空的 merge.scss 文件)并在 Git bash 终端中停止工作。 我将此行基于this 答案,但我无法让它为我工作。我也尝试了类似this 的方法,但这只会返回更多错误。 我在这里错过了什么?
编辑!
我认为 bash shell 只是停止工作,但似乎并非如此。过了一会儿,它返回这个: 这是什么意思?参考文件夹不正确吗?
目标:
如前所述,我想递归扫描资产文件夹中的 .scss 文件并将它们合并为一个 default.scss。
如果这对于要求与require.js(或简单地与节点)集成的另一个解决方案来说太过分了,正如您在我的脚本中看到的那样,我已经使用require.js 进行标准优化。
感谢您的时间和耐心!
【问题讨论】:
-
安装gentoo。
-
不幸的是,这不是一个选择;)
-
为什么要指定一个 REVERSE SOLIDUS(反斜杠)作为
find '\' -name...中的目录?那不应该是SOLIDUS(斜线,virgule)吗?find / -name... -
@lit,感谢您的回复!不幸的是,这是一个错字,似乎不起作用:(老实说,我完全不知道这条线 atm 的问题是什么
-
您发布的图像使您看起来像是在 cmd.exe shell 提示符下,而不是 bash shell 提示符下。 Windows
find.exe报告此错误消息。你需要启动一个 bash shell。
标签: node.js bash cmd sass requirejs