如何使用缩小工具通过命令行缩小 Javascript 和 CSS?

Joã*_*ira 13 shell javascript

我不是那么精通 unix 并且我不能使用 Java,所以 YUI Compressor 不适用,但我有这个已知的Minify 工具,它将从特定的 URI 获得一个 JS/CSS 文件的缩小版本/min/?f=/path/to/file.js.css

我可以使用哪些 unix 命令,使用这种方法来缩小 public_html 文件夹中的所有 js/css 文件,用它们的缩小版本替换所有 js/css 文件?

Joã*_*ira 22

在搜索并实现之后,我通过一个bash文件在这里给出了答案。

我分别使用 npm 包uglifyjsuglifycss压缩 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 {} \;
Run Code Online (Sandbox Code Playgroud)

这将运行如下的所有js和css文件在各自js/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 {} \;
Run Code Online (Sandbox Code Playgroud)


小智 6

sudo apt-get install yui-compressor
yui-compressor finename.css > filename.min.css
Run Code Online (Sandbox Code Playgroud)

资料来源:

  • 该解决方案使用“yui-compressor”,它使用 Java。问题指出*我无法使用 Java,因此 YUI Compressor 不适用* (6认同)