webpack-dll.config.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const webpack = require('webpack');
  2. const ExtractTextPlugin = require('extract-text-webpack-plugin');
  3. const dirVars = require('./webpack/dir.config.js');
  4. var path = require('path');
  5. const version = require('./package.json').version;
  6. const argv = require('yargs').argv;
  7. let theme = {
  8. '@primary-color': '#58a3ff',
  9. '@link-color': '#58a3ff'
  10. };
  11. module.exports = (function () {
  12. var staticHost = argv.env.host + '/' + version + '/';
  13. theme['@icon-url'] = '"' + staticHost + 'css/iconfont/iconfont"';
  14. var dllContext = path.resolve(dirVars.dllDir, './' + argv.env.deploy);
  15. return {
  16. output: {
  17. path: dllContext,
  18. filename: '[name].js',
  19. library: '[name]', // 当前Dll的所有内容都会存放在这个参数指定变量名的一个全局变量下,注意与DllPlugin的name参数保持一致
  20. },
  21. entry: {
  22. dll: [
  23. 'react', 'react-dom', 'antd', 'jquery/src/ajax/xhr.js', 'jquery/src/ajax', 'antd/lib/style'
  24. ],
  25. },
  26. plugins: [
  27. new webpack.DllPlugin({
  28. path: path.resolve(dllContext, 'manifest.json'), // 本Dll文件中各模块的索引,供DllReferencePlugin读取使用
  29. name: '[name]', // 当前Dll的所有内容都会存放在这个参数指定变量名的一个全局变量下,注意与参数output.library保持一致
  30. context: dirVars.staticRootDir, // 指定一个路径作为上下文环境,需要与DllReferencePlugin的context参数保持一致,建议统一设置为项目根目录
  31. }),
  32. new ExtractTextPlugin({
  33. filename: "[name].css",
  34. disable: false,
  35. allChunks: true
  36. }), // 打包css/less的时候会用到ExtractTextPlugin
  37. new webpack.optimize.UglifyJsPlugin({
  38. minimize: true,
  39. compress: {
  40. warnings: false,
  41. },
  42. })
  43. ],
  44. module: require('./webpack/module.config.js')(theme),
  45. resolve: {
  46. extensions: ['.js', '.jsx']
  47. }
  48. }
  49. })();