我不太精通 unix,也不会 Java,所以 YUI Compressor 不适用,但我知道这一点缩小工具,它将从特定 URI 获取 JS/CSS 文件的缩小版本/min/?f=/path/to/file.js.css
我可以使用哪些unix命令,使用这种方法来缩小public_html文件夹中的所有js/css文件,用其缩小版本替换所有js/css文件?
答案1
经过搜索和实现后,我在这里通过一个bash文件给出答案。
我使用 npm 包uglifyjs
和uglifycss
分别用于压缩JS和CSS文件。我使用命令find
循环访问这些文件。我假设 js 和 css 文件分别位于 ajs/
和 acss/
文件夹中。
#minification of JS files
find js/ -type f \
-name "*.js" ! -name "*.min.*" ! -name "vfs_fonts*" \
-exec echo {} \; \
-exec uglifyjs -o {}.min {} \;
#minification of CSS files
find css/ -type f \
-name "*.css" ! -name "*.min.*" \
-exec echo {} \; \
-exec uglifycss --output {}.min {} \;
这将缩小相应目录中的所有 js 和 cssjs/
文件css/
。如果您想排除其中的某些特定文件夹或模式,请使用该选项! -name
如果你想简单地用原始文件替换缩小后的文件,即删除原始文件:
#minification of JS files
find js/ -type f \
-name "*.js" ! -name "*.min.*" ! -name "vfs_fonts*" \
-exec echo {} \; \
-exec uglifyjs -o {}.min {} \; \
-exec rm {} \; \
-exec mv {}.min {} \;
#minification of CSS files
find css/ -type f \
-name "*.css" ! -name "*.min.*" \
-exec echo {} \; \
-exec uglifycss --output {}.min {} \; \
-exec rm {} \; \
-exec mv {}.min {} \;