【问题标题】:How do i use UglifyJs to 'compile' my Javascript code and not just minify it我如何使用 UglifyJs 来“编译”我的 Javascript 代码,而不仅仅是缩小它
【发布时间】:2012-11-14 02:28:01
【问题描述】:

首先,我知道 javascript 没有编译。 Uglifyjs 作为一个编译器来发现可能的错误......现在我的问题

我刚刚下载/安装了 uglifyjs https://github.com/mishoo/UglifyJS 。我想在缩小之前编译我的 javascript 代码。我有一个名为 badjs.js 的文件,它是:

    var a=10  //notice no semicolon
    a = b + 3;   // b is not declared
    alert('the value of a is ' + a);

badjs.js 的前 2 行应该会导致 uglifyjs 对我吠叫,但事实并非如此。我运行这个:

  uglifyjs badjs.js

它所做的只是输出缩小版。我如何告诉 uglifyjs 通知我错误?谢谢

【问题讨论】:

  • 编译 js代码是什么意思? Javascript 仅由执行它的某些引擎编译,例如在浏览器内部,例如 Google Chrome 使用的 V8。
  • @fegemo 你读过关于使用 UglifyJS 的部分吗?我知道它不一定“编译”,但这不是重点......
  • 我同意,@lan,但这个词会误导那些可能不知道这一点的人。
  • @Ian...我尝试了这个 uglifyjs badjs.js --verbose,但得到了相同的结果..意味着没有关于错误代码的警告
  • 我猜测编译 OP 意味着检查语法错误等?

标签: javascript


【解决方案1】:

它不应该对你“吠叫”。 Uglify 遵循 js 规范,该规范说分号在行尾是可选的。 Uglify 会在压缩时为你添加分号:

> uglifyjs --version
uglify-js 2.2.3
> uglifyjs ~/Desktop/test.js -c
var a=10;a=b+3,alert("the value of a is "+a);

【讨论】:

    【解决方案2】:

    我知道这个帖子已经过时了,但是当谷歌返回它时,我不得不提一下现在我们有一个“--lint”选项:

    uglifyjs main.js -o main.min.js --lint
    

    【讨论】:

    • @darwin-感谢您的回答。我有一段时间没有使用 uglify.js,但我将来可能会使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多