带有 AMD 的 Webpack,生成单个文件
Webpack with AMD, generating a single file
我们实际上正在从 RequireJS 迁移到 Webpack,以便能够切换到 CommonJS 模块而不是 AMD,而不必同时重构所有内容。
我们将 Almond 与 RequireJS 结合使用,这使我们能够生成客户正在使用的单个 .js 文件。
我们想用 Webpack 做同样的事情,但实际上它生成了两个资产,一个进行 JSONP 调用以异步加载另一个资产。
我们喜欢:
1.bundle.js
bundle.js
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 是否会创建多个块。
请查看原始问题中的更新,了解我是如何包含它的。
我们实际上正在从 RequireJS 迁移到 Webpack,以便能够切换到 CommonJS 模块而不是 AMD,而不必同时重构所有内容。
我们将 Almond 与 RequireJS 结合使用,这使我们能够生成客户正在使用的单个 .js 文件。
我们想用 Webpack 做同样的事情,但实际上它生成了两个资产,一个进行 JSONP 调用以异步加载另一个资产。
我们喜欢:
1.bundle.js
bundle.js
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 是否会创建多个块。
请查看原始问题中的更新,了解我是如何包含它的。