我想uglify然后缩小我的AngularJS源代码。 我一直在搜索样本然后我发现了grunt但是grunt需要NodeJS我们的网站没有运行NodeJS。
我找不到任何好的选择。
有什么想法吗?
答案 0 :(得分:1)
只有在您想要发布代码时才需要Uglify代码。服务器不需要它,因为它没有考虑代码中的空格。
答案 1 :(得分:0)
为了清楚一些事情,我在下面的开发机器上展示了什么“grunt”:
shaun@laptop:~/.npm$ which grunt
/home/shaun/local/bin/grunt
shaun@laptop:~/.npm$ ls -al /home/shaun/local/bin/grunt
lrwxrwxrwx 1 shaun shaun 39 Apr 15 2015 /home/shaun/local/bin/grunt -> ../lib/node_modules/grunt-cli/bin/grunt
shaun@laptop:~/.npm$ cat /home/shaun/local/lib/node_modules/grunt-cli/bin/grunt
#!/usr/bin/env node
'use strict';
process.title = 'grunt';
// Especially badass external libs.
var findup = require('findup-sync');
var resolve = require('resolve').sync;
// Internal libs.
var options = require('../lib/cli').options;
var completion = require('../lib/completion');
var info = require('../lib/info');
var path = require('path');
var basedir = process.cwd();
var gruntpath;
// Do stuff based on CLI options.
if ('completion' in options) {
completion.print(options.completion);
} else if (options.version) {
info.version();
} else if (options.base && !options.gruntfile) {
basedir = path.resolve(options.base);
} else if (options.gruntfile) {
basedir = path.resolve(path.dirname(options.gruntfile));
}
try {
gruntpath = resolve('grunt', {basedir: basedir});
} catch (ex) {
gruntpath = findup('lib/grunt.js');
// No grunt install found!
if (!gruntpath) {
if (options.version) { process.exit(); }
if (options.help) { info.help(); }
info.fatal('Unable to find local grunt.', 99);
}
}
// Everything looks good. Require local grunt and run it.
require(gruntpath).cli();
正如您所看到的,Grunt是一个节点脚本,因此它需要节点来运行基于grunt的插件。也就是说你可以从github或者任何地方下载并运行任何节点脚本,它们只是JS文件。
https://github.com/mishoo/UglifyJS2
^^如果您要克隆上述存储库并安装了节点,则可以运行
git clone https://github.com/mishoo/UglifyJS2.git
cd UglifyJS2
bin/uglify -m -- /full/path/to/input.js
# note the above assumes you already have node installed on the
# development machine since the bin/uglify file is interpreted/run
# by node VM
这将输出损坏的js,然后您可以将其放在服务器上(根本没有节点)。重申你的构建过程/工具不需要安装在服务器上(理想情况下可能不是这样)。