Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 开发模式下的缓慢资产编译_Javascript_Ruby On Rails_Ruby_Asset Pipeline - Fatal编程技术网

Javascript 开发模式下的缓慢资产编译

Javascript 开发模式下的缓慢资产编译,javascript,ruby-on-rails,ruby,asset-pipeline,Javascript,Ruby On Rails,Ruby,Asset Pipeline,我有一个大型rails应用程序,其中包含数百个咖啡脚本文件 有时,当我在coffeescript文件中进行微小更改或切换分支时,整个资产正在预编译,我必须等待很长时间才能加载页面: Started GET "/assets/application.js" for 127.0.0.1 at 2013-01-11 19:39:45 +0100 Compiled sprockets/commonjs.js (0ms) (pid 18142) Compiled jquery.js (2ms) (

我有一个大型rails应用程序,其中包含数百个咖啡脚本文件

有时,当我在coffeescript文件中进行微小更改或切换分支时,整个资产正在预编译,我必须等待很长时间才能加载页面:

Started GET "/assets/application.js" for 127.0.0.1 at 2013-01-11 19:39:45 +0100
Compiled sprockets/commonjs.js  (0ms)  (pid 18142)
Compiled jquery.js  (2ms)  (pid 18142)
Compiled jquery_ujs.js  (0ms)  (pid 18142)
Compiled underscore.js  (0ms)  (pid 18142)
Compiled backbone.js  (0ms)  (pid 18142)
Compiled backbone_rails_sync.js  (0ms)  (pid 18142)
Compiled handlebars.runtime.js  (0ms)  (pid 18142)
Compiled moment.js  (0ms)  (pid 18142)
...and so on
我使用以下资产配置
config/development.rb

# Do not compress assets
config.assets.compress = false

# Expands the lines which load the assets
config.assets.debug = false
当我设置config.assets.debug=false时,我必须等待很长时间才能加载数百个js文件。
问题是:如何找到中庸?如何在大型应用程序的开发模式下优化资产配置?

这是一个悲哀的事实,但你没有。没有一个干净的方法来解决这个问题

然而,有一些模式可以让你的痛苦最小化,如果我理解正确的话,那就是在开发过程中需要等待很长时间才能看到变化

如前所述,这些都已被看到和证实

  • 请看一看第2项
  • 将您的资产拆分为多个文件。这意味着在发生更改时处理的行更少
  • 更喜欢css/js,它们可能没有那么酷,但不需要编译
  • 在资产预编译时查找一些有趣的事情。这可能会降低生产率,但肯定会消除痛苦

  • 正如其他人所指出的,优化资产是提高编译速度(消除不必要的文件和预处理器,小心导入,谨慎使用分部)的第一种方法。但是,您为什么要在开发模式下打开
    config.assets.debug=false
    ?如果为false,链轮将把所有文件连接在一起,如果文件数量很大,这可能需要相当长的时间


    相反,打开
    config.assets.debug=true
    ,以便在第一次请求时编译和缓存资产。链轮设置缓存控制HTTP头以减少后续请求的请求开销。浏览器获得304(未修改)响应。请参阅Rails文档。

    请查看对话团队提供的信息。我们在rails 4应用程序中取得了巨大的成功——在开发过程中,重新加载时间从一分钟缩短到了5秒。

    你看过这个吗:还有这个?老实说,我不相信任何第三方库/解决方法。我正在寻找一个干净的rails解决方案来处理这种情况。数百个js文件x 0ms仍然非常快,或者我遗漏了什么?Umm rails是一个第三方解决方案:)据我所知,添加gems是rails解决方案:)@sevensacat这只是一个例子,一般来说,编译一个文件大约需要100万次。这帮我节省了很多时间。非常感谢,太好了!将时间从大约3000毫秒缩短到700毫秒