我在Rails 4.0.13上使用requirejs-rails
版本0.9.8。我遇到了一个问题,其中requirejs连接了我所有的JS文件,但没有缩小它们。
这是我的requirejs.yml文件:
paths:
'react' : 'react/react-with-addons'
'react-dom' : 'react/react-dom'
'react-router' : 'react-router/index'
'react-router-shim' : 'react-router-shim/react-router-shim'
'jquery' : 'jquery/dist/jquery'
'lodash' : 'lodash/lodash'
'flux' : 'flux/dist/Flux'
'es6-promise' : 'es6-promise/promise'
'event-emitter' : 'eventemitter2/lib/eventemitter2'
'object-assign' : 'object-assign/object-assign'
'async' : 'requirejs-plugins/src/async'
'moment' : 'moment/min/moment-with-locales.min'
'bootstrap' : 'bootstrap/bootstrap.min'
'material' : 'material-kit/material.min'
'material-kit' : 'material-kit/material-kit'
'jquery' : 'jquery/jquery.min'
shim:
'react-router-shim':
exports: 'React'
'react-router':
deps: ['react-router-shim']
exports: 'ReactRouter'
'material-kit':
deps: ['jquery', 'material', 'bootstrap']
'material':
deps: ['jquery', 'bootstrap']
'bootstrap':
deps: ['jquery']
exports: 'jquery'
'lodash':
exports: '_'
'object-assign':
exports: 'ObjectAssign'
在运行rake assets:precompile RAILS_ENV=production
之后,我查看了public/assets
application-HASH
文件,看到它只是一个包含所有JS连接的大文件。这是我的production.rb
文件:
App::Application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both thread web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = true
# Generate digests for assets URLs.
config.assets.digest = true
# Version of your assets, change this if you want to expire all your assets.
config.assets.version = '1.1'
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = true
# Set to :debug to see everything in the log.
config.log_level = :info
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = "http://assets.example.com"
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# config.assets.precompile += %w( search.js )
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found).
config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Disable automatic flushing of the log to improve performance.
# config.autoflush_log = false
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
end
修改
看起来requirejs-rails
在我的应用程序的tmp/requirejs/dst
目录中单独成功缩小了我的JS文件,但这些文件没有连接在一起以创建application-HASH.js
文件。
答案 0 :(得分:1)
我发现了这个问题。
我的JavaScript源出现语法错误,导致构建失败。只有当我将logLevel: 0
添加到我的requirejs.yml文件中时,我才能看到错误Unexpected token operator «=», expected punc «,» (line: 11, col: 37, pos: 276)
。