在没有NodeJS的情况下,对AngularJS源代码进行Uglify和Minify

时间:2018-01-11 02:01:12

标签: javascript angularjs node.js gruntjs frontend

我想uglify然后缩小我的AngularJS源代码。 我一直在搜索样本然后我发现了grunt但是grunt需要NodeJS我们的网站没有运行NodeJS。

我找不到任何好的选择。

有什么想法吗?

2 个答案:

答案 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,然后您可以将其放在服务器上(根本没有节点)。重申你的构建过程/工具不需要安装在服务器上(理想情况下可能不是这样)。