如何配置webpack指定require.ensure打包的路径?

描述你的问题

webpack 貌似对 require.ensure 是单独打包的,我该如何指定 require.ensure 打包的目标目录呢?


贴上相关代码

  • webpack的配置代码:

  entry: {
     'css/index': [path.join(process.cwd(), '/webapp/static/sass/index.scss'), ...(WATCH ? [HMR_URI] : [])],
     'js/index': [path.join(process.cwd(), '/webapp/static/js/index.js'), ...(WATCH ? [HMR_URI] : [])]
    
  },
    
  output: {
     path: path.join(process.cwd(), '/static/'),
     // if your want to cdn, just change here
     publicPath: '/static/',
     sourcePrefix: '',
     trunkFilename: DEBUG ? '[name].bundle.js' : '[name].[chunkhash:8].min.js',
     filename: DEBUG ? '[name].bundle.js' : '[name].[chunkhash:8].min.js'
  },
  • 引用require.ensure代码:

    import Animal from './base/animal';
    
    require.ensure(['./base/animal'], function(require) {
        console.log("start ...");
    
        let obj = require('./modules/programmer');
        let wayou = new obj.Programmer('wayou');
    
        wayou.sayName();
        wayou.program();
    }, 'Programmer');
    
    let animal = new Animal('dummy');
    animal.sayName();

贴上相关截图

图片描述

2016-2-11 问题补充

@公子 说的 output.path 是用来指定所有资源打包后的目录的。可能是我问题没有说明白,我的意思是,如何修改才可以单纯的指定代码分块的输出目录而又不影响其它资源的打包目录呢?

阅读 14.2k
4 个回答

output.path 就是代码分块的输出位置呀

你意思是不是想自己指定生成的chunk的路径,就是那些自动配置名字的0.js,1.js之类的路径,我测试的只需要设置好chunkFilename,和publicPath就好了,那个单独打包的chunk是以publicPath为基准的,publicPath是/src/那么单独打包出来的chunk就在src下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进