Как добавить шаблонный комментарий или лицензию в начало файла JavaScript, скомпилированного с использованием Rails 3.1 Asset Pipeline? - PullRequest
3 голосов
/ 25 октября 2011

Я использую Asset Pipeline для создания некоторого JavaScript, который будет передан ряду сторонних разработчиков. Я хочу разместить предупреждающий комментарий в верхней части сгенерированного (и, возможно, запутанного) выходного файла, но не ясно, как этого добиться с помощью комбинации sprockets / coffeescript.

# This is a manifest file that'll be compiled into including all the files listed below.
# Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
# be included in the compiled file accessible from http://example.com/assets/application.js
# It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
# the compiled file.
###
  The following code was compiled from source by MF. 
  Please do not edit this JavaScript directly.  
####
#= require util/extensions
#= require util/date_manipulation
#= require util/format
#= require points_data
#= require graphics/canvas_graphics
#= require graphics/explorer_canvas_graphics
#= require renderer

Я получаю следующий результат:

(function() {
  /*
    The following code was compiled from source by MF. 
    Please do not edit this JavaScript directly.  
  */
}).call(this);

Что я хочу, это (или что-то близкое):

/*
    The following code was compiled from source by MF. 
    Please do not edit this JavaScript directly.  
  */
(function() {
  // ******** my compiled code from all those required files! *******
}).call(this);

Как мне заставить это работать?

1 Ответ

2 голосов
/ 25 октября 2011

Самый простой способ - добавить комментарий к файлу после компиляции.

Компрессор по умолчанию для Rails - Uglifier - имеет опцию: copyright для хранения первых строк комментариев в файлах, так что вы можете использовать это, чтобы оставить комментарий (и все другие авторские права) в.

config.assets.js_compressor = Uglifier.new(:copyright => true)

...