RequireJS连接JS而不是缩小

时间:2016-08-03 05:00:40

标签: javascript ruby-on-rails ruby requirejs

我在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文件。

1 个答案:

答案 0 :(得分:1)

我发现了这个问题。

我的JavaScript源出现语法错误,导致构建失败。只有当我将logLevel: 0添加到我的requirejs.yml文件中时,我才能看到错误Unexpected token operator «=», expected punc «,» (line: 11, col: 37, pos: 276)