带有 AMD 的 Webpack,生成单个文件

Webpack with AMD, generating a single file

我们实际上正在从 RequireJS 迁移到 Webpack,以便能够切换到 CommonJS 模块而不是 AMD,而不必同时重构所有内容。

我们将 Almond 与 RequireJS 结合使用,这使我们能够生成客户正在使用的单个 .js 文件。

我们想用 Webpack 做同样的事情,但实际上它生成了两个资产,一个进行 JSONP 调用以异步加载另一个资产。

我们喜欢:

bundle.js 文件发出 JSONP 请求以加载 1.bundle.js 文件,但这不是我们想要做的。我们需要一个独立的文件。

是否可以只生成一个.js文件?

这是我的 webpack 配置,请注意我们在 Gruntfile.coffee 文件中使用 grunt-webpack 任务。

entry: './app/pack.coffee'
target: 'web'
output:
  path: '.webpack/'
  filename: 'app.js'
resolve:
  root: path.resolve './app'
  alias:
    'underscore': path.resolve './vendors/underscore.js'
    'backbone': path.resolve './vendors/backbone/backbone.js'
    'accounting': path.resolve './vendors/accounting.js'
    'moment': path.resolve './vendors/moment.js'
    'tipsy': path.resolve './vendors/jquery.tipsy.js'
    'json2': path.resolve './vendors/json2.js'
    'backbone.wreqr': path.resolve './vendors/backbone.wreqr/lib/backbone.wreqr.js'
    'backbone.babysitter': path.resolve './vendors/backbone.babysitter/lib/backbone.babysitter.js'
    'backbone.marionette': path.resolve './vendors/marionette/lib/backbone.marionette.js'
    'backbone.syphon': path.resolve './vendors/backbone.syphon.js'
    'backbone.paginator': path.resolve './vendors/backbone.paginator.js'
    'backbone.routefilter': path.resolve './vendors/routefilter/src/backbone.routefilter.js'
module:
  loaders: [
    { test: /\.coffee$/, loader: "coffee-loader" },
    { test: /\.html/, loader: "raw-loader" },
    { test: /\.(coffee\.md|litcoffee)$/, loader: "coffee-loader?literate" }
  ]
plugins: [
  new webpack.optimize.LimitChunkCountPlugin
    maxChunks: 1
]

更新

使用 LimitChunkCountPlugin 似乎可以解决问题!出于优化目的,当您生成的文件很大时,不知道 Webpack 是否会创建多个块。

使用 LimitChunkCountPlugin 似乎可以解决问题!出于优化目的,当您生成的文件很大时,不知道 Webpack 是否会创建多个块。

请查看原始问题中的更新,了解我是如何包含它的。