Webpack多个命名块,在运行时忽略名称

时间:2014-07-14 18:16:32

标签: javascript coffeescript amd commonjs webpack

我遇到了webpacks代码拆分功能的问题。我试图在我的应用程序中有两个命名的块,这两个路径不经常访问。 mysite.com/settings和mysite.com/access。

这是我的webpack.config.coffee

module.exports =

  contentBase: "#{__dirname}/src/"

  cache: true

  entry:
    app: './src/coffee/app'
    head: './src/coffee/head'

  output:
    path: path.join(__dirname, 'build')
    publicPath: '/'
    filename: '[name].js'
    chunkFilename: '[name]-[chunkhash].js'

  plugins: []

这是我的router.coffee

access: (slug) ->

    _this = @
    require.ensure ['../view/page/access-page.coffee'], (require) ->
      AccessPage = require '../view/page/access-page.coffee'
      accessPage = AccessPage.getInstance()
      accessPage.render() unless accessPage.isRendered
      _this.showPage accessPage
    , 'access'


settings: (slug) ->

    _this = @
    require.ensure ['../view/page/settings-page.coffee'], (require) ->
      SettingsPage = require '../view/page/settings-page.coffee'
      settingsPage = SettingsPage.getInstance()
      settingsPage.render() unless settingsPage.isRendered
      _this.showPage settingsPage
    , 'settings'

我没有使用webpack开发服务器,而只是通过使用以下cmd-line工具来观看

webpack -d --progress --colors --watch

问题在于它在需要文件时会忽略名称,因为您可以看到格式为'[name] - [hash] .js'它会生成具有正确格式的文件,例如settings-2j3nekj2n3ejkn2.js但在开发期间,当我尝试加载页面时,浏览器抱怨找不到'-2j3nekj2n3ejkn2.js',不知何故,文件的映射忽略了名称。如果我省略名字,那就行了。

所以问题是如何才能正确设置多个名为chunk的块。提前谢谢。

注意我已在https://github.com/webpack/docs/wiki/code-splitting

的文档中查看了他们的示例

我一直关注他们的优化文档 https://github.com/webpack/docs/wiki/optimization

但我被困了

1 个答案:

答案 0 :(得分:2)

简单的答案是 - [名称=在chunkName中不受支持。

Webpack上那些很棒的人实际上听到了我的哭声并实现了它

这是提交 https://github.com/webpack/webpack/commit/03c87c11a4219ae6ec6bfe87e570a0dacceac859

由于我做了以下问题 https://github.com/webpack/webpack/issues/358

自Beta ^ 1.3.2起已有。