【问题标题】:uglifyjs javascript inside php filesphp文件中的uglifyjs javascript
【发布时间】:2015-02-23 14:25:40
【问题描述】:

我的项目在 PHP 文件中有很多 JS 代码。我想缩小这些文件中的 JS 代码,我喜欢 uglifyjs2 program。那个(或任何)JS 缩小器是否有可能作用于 JS 代码 INSIDE 一个 php 文件?

有人会建议从 PHP 文件中删除所有 JS 代码并将其放入 .js 文件中——但这并不总是可行的。

请记住,我确实希望即时缩小 JS(作用于 PHP 解释器的输出)。我正在向包含 JS 的客户交付 PHP 代码,并且我希望在我交付的 PHP 文件中缩小 JS。

【问题讨论】:

  • github.com/makesites/uglifyjs-php ... 这个?从字面上看,它似乎是您案例的解决方案:P
  • @briosheje 完全跑题了。他不是在为 Uglify 寻找 PHP API。
  • @meagar:为什么不呢?我的意思是,目标是在 PHP 中缩小 JS,不是吗?
  • @briosheje 他试图缩小 他的 PHP 文件中的 JavaScript。用于缩小外部脚本的 PHP API 在这里没有用处。
  • 我使用 gzip 压缩封装的 js 并在需要代码时在内存中解压。不确定这就是你的意思。

标签: javascript php minify uglifyjs


【解决方案1】:

您要查找的内容不存在。

在 PHP 文件中包含内联 JavaScript 的唯一真正原因是您需要插入 PHP 和 JavaScript 以便动态生成部分或全部脚本。您无法在 PHP 实际处理 之前 可靠地缩小此类 JavaScript,因此您会考虑在 PHP 运行之后 在每个请求上缩小它。这应该没有什么价值,因为你的大部分 JavaScript 不应该写在你的 PHP 文件中。

【讨论】:

  • Javascript 不能与 PHP 代码交互或依赖于 PHP 代码......所以我不同意在 PHP 被处理之前你不能缩小 JS。将 JS 代码直接放在 PHP 中的原因有很多(例如:最小化 PHP 文件中多个 JS 段的加载时间)
  • @GenerationDSystems:尽管这通常不是好的做法,但有些用户会将变量回显到 JavaScript,例如 var a = "<?php echo 'Hello world!' ?>"; 或类似的东西。
  • @GenerationDSystems 确实如此,但 PHP 绝对可以与其生成的静态 JavaScript 交互。 PHP 生成的 JavaScript 会经常破坏缩小,以至于你不应该这样做。缩小通常涉及更改标识符,如果您在 PHP 中的任何地方使用这些标识符,它就不可能工作。
【解决方案2】:

php 脚本作为输出生成的任何内容都会发送到浏览器。如果您将脚本的“实际”输出而不是输出流发送到另一个应用程序并获取并重定向那个输出 - 是的,您可以做任何事情。
另一个问题是这种方法的可行性和合理性如何。 uglifyjs2 是一个 node.js 应用程序,因此这一步需要某种进程间通信,即额外的复杂性和额外的时间/内存/故障点以及所有这些好东西。
也许值得付出努力,也许不值得。也许像https://github.com/tedious/JShrink 这样的东西就足够了......

【讨论】:

  • 我不希望即时缩小,因此对 PHP 解释器的输出进行操作是不适用的。我希望缩小 PHP 文件中的 JS 代码(交付给客户在他们自己的环境中运行)
猜你喜欢
  • 2013-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
  • 2014-01-31
相关资源
最近更新 更多