【问题标题】:Are there any javascript minifiers that preserve line breaks?是否有任何保留换行符的 javascript minifiers?
【发布时间】:2012-06-06 22:39:54
【问题描述】:

来自客户端的错误报告总是在第 1 行报告错误(因为文件已缩小)不是很有用。我想在保留换行符的同时缩小我的代码,以便获得有意义的行号。

是否有任何 javascript 缩小器可以选择保留换行符?

【问题讨论】:

  • 你能分享你想要缩小的 JS 吗?
  • 我的部署脚本通常会同时部署缩小版和非缩小版(不能在同一个地址访问),这样我就永远不必调试缩小版了。你也应该这样做,没有理由尝试调试缩小的代码。
  • 这适用于在生产环境中运行的代码。用户的浏览器也会报告这些错误,因此我无法在它发生时对其进行调试。但是知道错误发生在哪一行将帮助我在我的开发环境中找到错误。
  • 也许您不应该使用脚本的缩小版本进行调试?
  • 我没有使用缩小版进行调试。如果发生在用户机器上的错误。他们正在使用缩小版。当他们的机器上发生错误时,我不想得到报告说错误发生在第 1 行(因为文件被压缩到 1 行)。我希望用户获得一个缩小的文件,当我收到错误报告时,它会以这种方式保留换行符,它会显示类似于第 345 行的内容。然后我可以轻松地查找它以查看导致问题的代码。

标签: javascript minify


【解决方案1】:

我一直在寻找同样的东西,虽然我没有找到我想要的东西,但我刚刚看到(现已弃用)YUI Compressor 有一个 --line-break 0 开关,它会导致换行在每个分号之后插入。因为我一直在使用 YUI Compressor,所以我认为这可以用于我的调试目的。

【讨论】:

    【解决方案2】:

    我认为是这样的: https://developers.google.com/closure/compiler/docs/inspector

    正如 Fabien 所说的 Closure 编译器......但是在第三次寻找这个之后,我发现 Closure 编译器可以生成优化代码和原始源之间的映射文件:)

    你也不限于使用网络服务,你可以下载它作为独立的应用程序:)

    https://developers.google.com/closure/compiler/

    双赢

    【讨论】:

      【解决方案3】:

      看看来自谷歌的closure compiler,带有漂亮的打印选项 启用

      如果您使用命令行工具,还有很多选项。

      【讨论】:

      • 从文档中,pretty_print 格式化选项将添加换行符和缩进。最好它会删除除换行符之外的所有空格。这样,这些行将一对一地映射到原始源。如果编译器在它认为合适的地方添加换行符,它不会一对一映射。
      • 好吧,即使它没有一对一地映射到原始源,这种方式仍然可以很好地找到有问题的代码。所以我想我现在会采用这个解决方案。也许我会找到一个在未来完全保留换行符的缩小器。谢谢法比恩。
      猜你喜欢
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多