UNPKG

@molejs/mole-tools

Version:

Configuration and scripts for Mole App.

139 lines (134 loc) 3.81 kB
const fs = require('fs'); const path = require('path'); const webpack = require('webpack'); const merge = require('webpack-merge'); const ExtractTextPlugin = require("extract-text-webpack-plugin"); var WebpackShellPlugin = require('webpack-shell-plugin'); var LodashModuleReplacementPlugin = require('lodash-webpack-plugin'); const OptimizeJsPlugin = require("optimize-js-plugin"); const baseWebpackConfig = require('./base.conf'); const utils = require('./utils') module.exports = function(params) { var configureType = params.configureType; //配置文件类型 // 获取入口配置 var entry = utils.getEntryAliasList(params); // console.log(entry) // console.log(params.root) //return; // console.log(path.resolve('./tools/loader/bsapp-assets.js')); var mergeConf = merge(baseWebpackConfig(params), { //页面入口文件配置 entry: entry, // output: { // //path: params.root, // filename:'[name].js', // }, externals: { moment:{ commonjs: "moment", amd: "moment", root: "moment", }, fastclick:{ commonjs: "fastclick", amd: "fastclick", root: "FastClick", }, 'object-path':{ commonjs: "object-path", amd: "object-path", root: "objectPath", }, Vue: "Vue", // lodash:{ // commonjs: "lodash", // amd: "lodash", // root: "_", // }, upaas:{ commonjs: "upaas", amd: "upaas", root: "UPAAS", }, }, module: { rules: [ { test: /\.(ts|tsx)$/, use: [ { loader: require.resolve('ts-loader'), options: { // disable type checker - we will use it in fork plugin transpileOnly: true, }, }, ], }, { test: /\.(js|jsx)$/, use: [ { loader: 'keep-loader', options:{ keep:params.env.isBuildBeta ? "beta" : "official", } }, { loader: 'babel-loader', options:{ cacheDirectory:!params.env.isProduction, }, } ], include: [params.source, path.resolve(params.root, './node_modules/@beisen/bsapp-fetch'), path.resolve(params.root, './node_modules/@beisen/bsapp-bssdk'), path.resolve(params.root, './node_modules/vue-echarts-v3/src')] }, { test:/\.less$/, use: ExtractTextPlugin.extract({ fallback: "style-loader", use: [{ loader:'css-loader', }, { loader:'postcss-loader', }, { loader:'less-loader', }], }), },{ test:/\.css$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: [{ loader:'css-loader', }], }), }] }, resolveLoader: { modules: [ 'node_modules', // path.resolve(__dirname, 'loader') ] }, plugins: [ // new webpack.optimize.CommonsChunkPlugin({ // name:vendorKey, //输出公共库文件名 // }), // new OptimizeJsPlugin({ // sourceMap: false // }), // new webpack.optimize.ModuleConcatenationPlugin(), // new LodashModuleReplacementPlugin(), new ExtractTextPlugin({ filename:'[name].css', allChunks: true, }), new WebpackShellPlugin({ onBuildExit: ['node ./node_modules/@molejs/mole-tools/scripts/build-assets.js'] }), ] }, params.extraConfig); return mergeConf; };