| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /* eslint-disable @typescript-eslint/no-var-requires */
- /* eslint-disable no-undef */
- const { merge } = require("webpack-merge");
- const common = require("./webpack.common.js");
- const path = require("path");
- const lessToJs = require('less-vars-to-js');
- const fs = require('fs');
- const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
- //转换 less 变量,用于主题
- const baseLess = lessToJs(fs.readFileSync(path.join(__dirname, '../src/themes/themes.less'), 'utf8'));
- let themers = {};
- Object.keys(baseLess).map((k, i) => {
- let key = String(k).replace(/@/g, "");
- themers[key] = String(baseLess[k]);
- });
- const lessVars = Object.assign(themers, { "@CDN_BASE": "" });
- const lessExclude = /(node_modules)|(App)/;
- module.exports = merge(common, {
- mode: "development",
- devtool: "inline-source-map",
- module: {
- rules: [
- {
- test: /\.less$/,
- exclude: lessExclude,
- use: [
- "style-loader",
- {
- loader: "css-loader",
- options: {
- importLoaders: 1,
- modules: {
- localIdentName: "[local]___[hash:base64:5]"
- }
- },
- },
- {
- loader: "less-loader",
- options: {
- modifyVars: lessVars,
- javascriptEnabled: true
- }
- }
- ],
- },
- {
- test: /\.less$/,
- include: lessExclude,
- use: [
- "style-loader", "css-loader",
- {
- loader: "less-loader",
- options: {
- modifyVars: lessVars,
- javascriptEnabled: true
- }
- }
- ],
- },
- {
- test: /\.css$/,
- use: [
- 'style-loader',
- 'css-loader',
- ],
- exclude: /(node_modules)/
- },
- // style
- {
- test: /\.css$/,
- use: ['style-loader', 'css-loader'],
- exclude: /(src)/
- },
- {
- test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
- loader: "file-loader"
- },
- {
- test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
- use: ['url-loader?limit=10000&mimetype=images/svg+xml']
- },
- {
- test: /\.(less|css)$/,
- use: ['style-loader', 'css-loader'],
- include: [
- path.resolve(__dirname, './node_modules/monaco-editor/'),
- path.resolve(__dirname, './node_modules/bravo-editor/'),
- ]
- },
- // {
- // test: /\.contribution$/,
- // include: [
- // path.resolve(__dirname, './node_modules/monaco-editor/'),
- // path.resolve(__dirname, './node_modules/bravo-editor/'),
- // ],
- // use: {
- // loader: "babel-loader",
- // options: {
- // presets: ["@babel/preset-env", "@babel/preset-react"],
- // plugins: ["@babel/plugin-transform-runtime"],
- // },
- // },
- // },
- // {
- // test: /\.contribution.js$/,
- // include: [
- // path.resolve(__dirname, './node_modules/monaco-editor/'),
- // path.resolve(__dirname, './node_modules/bravo-editor/'),
- // ],
- // use: {
- // loader: "babel-loader",
- // options: {
- // presets: ["@babel/preset-env", "@babel/preset-react"],
- // plugins: ["@babel/plugin-transform-runtime"],
- // },
- // },
- // },
- ],
- },
- plugins: [
- new MonacoWebpackPlugin()
- ],
- devServer: {
- // historyApiFallback: true, //不跳转
- // noInfo: true,
- // inline: true, // 实时刷新
- // contentBase: join(__dirname, "../dist"),
- compress: true,
- port: 9008,
- host: "0.0.0.0",
- hot: true,
- proxy: {
- "/api": {
- // target: "http://47.96.100.195:9081"
- // target: "http://dataportal-test.agile.com.cn:8081"
- target: "http://106.52.242.177:9081",
- // target:"http://dataportal.dtyunxi.cn/demo",
- changeOrigin:true,
- },
- "/mock":{
- target: "http://172.24.81.106:9999",
- pathRewrite: { '^/mock': '/api' },
- }
- },
- // lazy: true,
- // filename: "print.js",
- // historyApiFallback: /* 对指定url重定向 */ {
- // rewrites: [
- // { from: /^\/$/, to: "/index.html" },
- // { from: /^\/subpage/, to: "/index.html" },
- // ],
- // },
- },
- });
|