我们实际上是从RequireJS迁移到Webpack,以便能够切换到CommonJS模块而不是AMD,而无需同时重构所有内容。
我们正在使用带有RequireJS的Almond,它允许我们生成客户正在使用的单个.js文件。
我们希望对Webpack做同样的事情,但实际上它会生成两个资产,一个使JSONP调用异步加载另一个资产。
我们得到了:
1.bundle.js
bundle.js
bundle.js
文件发出加载1.bundle.js
文件的JSONP请求,但这不是我们想要做的。我们需要一个独立的文件。
是否可以只生成一个.js
文件?
这是我的webpack配置,请注意我们在grunt-webpack
文件中使用Gruntfile.coffee
任务。
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是否会创建多个块以进行优化。
答案 0 :(得分:1)
使用LimitChunkCountPlugin
似乎可以解决问题!当生成的文件很大时,不知道Webpack是否会创建多个块以进行优化。
请参阅原始问题中的更新,了解我是如何收录的。