| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- const path = require("path");
 - const webpack = require('webpack');
 - const HtmlWebpackPlugin = require("html-webpack-plugin");
 - const HappyPack = require('happypack');
 - const os = require('os');
 - const happyThreadPool = HappyPack.ThreadPool({
 -     size: os.cpus().length
 - });
 - 
 - const common = require("./common");
 - const pathVars = require("./pathVars");
 - const pageVars = require("./pageVars");
 - 
 - //---------------------------------- output -----------------------------------//
 - const entryConfig = {};
 - 
 - let pages = pageVars.getChartsTest();
 - pages.forEach((page) => {
 -     entryConfig[page["chunkName"]] = page["entryJs"];
 - });
 - 
 - //---------------------------------- output -----------------------------------//
 - 
 - let outputConfig = {
 -     path: pathVars.devPath,
 -    // publicPath: "./", // 表示资源的发布地址,当配置过该属性后,打包文件中所有通过相对路径引用的资源都会被配置的路径所替换(如:css中背景图的路径)
 -     filename: "[name]/index.js",
 -     assetModuleFilename: 'chartImages/[name]_[hash][ext][query]'
 - };
 - 
 - 
 - //---------------------------------- plugin -----------------------------------//
 - let pluginConfig = [
 -     new webpack.ProvidePlugin({
 -         'THREE': require.resolve('three')
 -     }),
 -     new webpack.DllReferencePlugin({
 -         context: pathVars.rootPath,
 -         manifest: require(pathVars.dllPath + '/manifest.json')
 -     }),
 -     new HappyPack({
 -         id: 'babel',
 -         loaders: ["babel-loader"],
 -         threadPool: happyThreadPool
 -     })
 - ];
 - 
 - pages.forEach(function (page) {
 -     let htmlPlugin = new HtmlWebpackPlugin({
 -         title: 'chartTest',
 -         template: page["htmlPath"],
 -         filename: page["htmlName"],
 -         inject: 'body',
 -         chunks: [page["chunkName"]]
 -     });
 -     pluginConfig.push(htmlPlugin);
 - });
 - 
 - module.exports = {
 -     mode: 'development',
 -     entry: entryConfig,
 -     output: outputConfig,
 -     resolve: common.resolve,
 -     devServer: {
 -         compress: true,
 -         static: {
 -             directory: pathVars.devPath,
 -             publicPath: "/"
 -         },
 -         hot: true,
 -         host: 'localhost',
 -         port: 3000
 -     },
 -     module: {
 -         rules: [{
 -                 test: /\.(css|less)$/,
 -                 include: [pathVars.srcPath],
 -                 exclude: [pathVars.nodeModulesPath],
 -                 use: [{
 -                         options: {
 -                             /* 解决css背景图路径问题 由于图片目录已经定好了,因此这里可以用固定的相对路径*/
 -                             publicPath: '../'
 -                         },
 -                     },
 -                     //"css-loader?modules&localIdentName=[name]__[local]-[hash:base64:5]",
 -                     "css-loader",
 -                     "less-loader"
 -                 ],
 -             },
 -             {
 -                 test: /\.js$/,
 -                 exclude: pathVars.nodeModulesPath,
 -                 include: pathVars.srcPath,
 -                 use: ['babel-loader']
 -                 //use: ["happypack/loader?id=babel"]
 -             },
 -             {
 -                 test: /\.(png|jpg|gif|woff|svg|eot|ttf|woff2)$/,
 -                 type: 'asset/resource',
 -                 parser: {
 -                     dataUrlCondition: {
 -                         maxSize: 10 * 1024
 -                     }
 -                 }
 -             },
 -             {
 -                 test: /\.(glsl|vs|fs|vert|frag)$/,
 -                 exclude: [pathVars.nodeModulesPath, pathVars.dllPath],
 -                 use: ["raw-loader", "glslify-loader"]
 -             }
 -         ]
 -     },
 -     plugins: pluginConfig,
 -     optimization: {
 -         runtimeChunk: 'single',
 -         splitChunks: {
 -             chunks: "all",
 -             cacheGroups: {
 -                 vendor: {
 -                     test: /[\\/]node_modules[\\/]/,
 -                     name: 'vendor',
 -                     chunks: 'all'
 -                 }
 -             }
 -         }
 -     }
 - };
 
 
  |