【问题标题】:Differences in JS between 'middleman server' and 'middleman build'“中间人服务器”和“中间人构建”之间的 JS 差异
【发布时间】:2014-01-20 06:00:14
【问题描述】:

我正在尝试通过 Middleman 的“构建”命令构建我的 Middleman + Ember 站点,但注意到 Javascript 的导出方式有所不同。如果我让它编译 JS 而不通过“中间人服务器”调试资产,那么一切都很好。但是,当通过“构建”命令完成相同的操作时,作为 Foundation 一部分的正则表达式命令中的某些字符会被更改并被视为无效,从而导致整个站点无法加载。由于我不确定如何描述角色发生了什么,下面是在 Kaleidoscope 中比较的两个文件。

Compared files http://f.cl.ly/items/0X2f0W1I2o0X371s2V3u/Screen%20Shot%202014-01-20%20at%2012.57.31%20AM.png

为什么这两个文件完全不同?如何告诉构建命令不要做它正在做的任何事情?

编辑:这是我在 JS 控制台中遇到的错误

Uncaught SyntaxError: Invalid regular expression: /(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[ -퟿豈-ï·ï·°-￯])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[ -퟿豈-ï·ï·°-￯])|(([a-zA-Z]|\d|[ -퟿豈-ï·ï·°-￯])([a-zA-Z]|\d|-|\.|_|~|[ -퟿豈-ï·ï·°-￯])*([a-zA-Z]|\d|[ -퟿豈-ï·ï·°-￯])))\.)+(([a-zA-Z]|[ -퟿豈-ï·ï·°-￯])|(([a-zA-Z]|[ -퟿豈-ï·ï·°-￯])([a-zA-Z]|\d|-|\.|_|~|[ -퟿豈-ï·ï·°-￯])*([a-zA-Z]|[ -퟿豈-ï·ï·°-￯])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[ -퟿豈-ï·ï·°-￯])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[ -퟿豈-ï·ï·°-￯])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[ -퟿豈-ï·ï·°-￯])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[-]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[ -퟿豈-ï·ï·°-￯])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?/: Range out of order in character class

编辑 2:Here 是我的 config.rb(为了简洁起见,去掉了一些 cmets)

编辑 3: Here 是一个链接,指向 Middleman 似乎遇到问题的 Foundation JS 部分。我能够通过包含除此部分之外的所有 Foundation 来临时解决我的问题。

【问题讨论】:

  • 你使用的是相同的编码吗?
  • 有没有办法告诉 Middleman 也这样做?我不确定为什么默认情况下它不会使用相同的编码...
  • 你能说明正则表达式是如何失效的吗?
  • 已编辑问题以添加我遇到的 JS 错误
  • 张贴您的config.rb

标签: javascript regex ember.js zurb-foundation middleman


【解决方案1】:

您是否在构建时使用了一些压缩选项? (详情请参阅http://middlemanapp.com/advanced/file-size-optimization/#toc_1。)

activate :minify_javascript 可能是原因。但正如它所读...

如果您已经在使用包含 .min 的压缩文件 文件名,中间人不会碰它。这对图书馆有好处 像 jQuery 一样被他们的作者仔细压缩过 时间。

...您可能正在使用非缩小版本的 Foundation。或者文件名中没有.min 的缩小版。

【讨论】:

  • 不幸的是,这没有帮助。我尝试包含使用 Middleman 构建的 Foundation 的预压缩版本,然后得到了同样的错误。即使完全禁用 :minify_javascript 选项仍然会混淆该位正则表达式中的编码。我链接到我的 config.rb 的要点,也许有人可以发现一些东西
  • 你也可以链接到 Foundation JavaScript 文件吗?所以我可以在本地尝试一下,看看它是否也会在构建时弄乱编码。
猜你喜欢
  • 2016-05-12
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 2011-08-19
  • 1970-01-01
  • 2013-10-11
  • 2012-12-14
  • 1970-01-01
相关资源
最近更新 更多