Ruby on rails 如何将两个或多个coffeescript文件与重复的函数名合并在一起?
我正在尝试将我所有的coffeescript文件合并到我的rails 3.1资产管道网站上,这样开发页面可以更快地加载。我从28秒降到了6秒。但是以前唯一的本地函数名现在都在同一个文件中,并且会遇到重复。我希望保持相同的函数名,但在某种名称空间中 这里有几个示例文件 文件a.js.coffeeRuby on rails 如何将两个或多个coffeescript文件与重复的函数名合并在一起?,ruby-on-rails,file,merge,coffeescript,Ruby On Rails,File,Merge,Coffeescript,我正在尝试将我所有的coffeescript文件合并到我的rails 3.1资产管道网站上,这样开发页面可以更快地加载。我从28秒降到了6秒。但是以前唯一的本地函数名现在都在同一个文件中,并且会遇到重复。我希望保持相同的函数名,但在某种名称空间中 这里有几个示例文件 文件a.js.coffee root = exports ? this $(document).ready -> sayHi() root.sayHi = -> greeting() greeting =
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
#------------------
# from a.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
#------------------
# from b.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
文件b.js.coffee
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
#------------------
# from a.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
#------------------
# from b.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
如何将这两个文件的内容连接在一起,同时保持两个独立的问候语功能
新文件ab.js.coffee
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
#------------------
# from a.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
#------------------
# from b.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
命名函数名称空间的一种方法是只使用对象
#------------------
# from a.js.coffee
#------------------
a =
sayHi: ->
@greeting
greeting: ->
console.log('a')
alert("Howdy")
#------------------
# from b.js.coffee
#------------------
b =
sayHello: ->
@greeting
greeting: ->
console.log('b')
alert("Hi there")
#------------------
# initializer
#------------------
$(document).ready ->
a.sayHi()
b.sayHello()
return
你用什么加入文件?默认情况下,coffee将每个文件包装在一个IIFE中((function(){…)()
)为了避免这些冲突。我正在物理上将每个单独的coffeescript文件的内容复制到一个大文件中。我的开发机器上的Rails服务器使用每个文件单独呈现一个页面的时间太长了。合并前完成一个页面需要28秒,合并后只需要4秒。我要尝试一下s、 “问候”是什么?我以前从未见过。啊,我知道“@”是“this”的别名。