Skip to content

Commit a14db4b

Browse files
authored
Merge pull request #612 from didi/dev
合并开发分支
2 parents 9133205 + 54ee271 commit a14db4b

File tree

51 files changed

+1524
-1597
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1524
-1597
lines changed

km-console/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

km-console/packages/config-manager-fe/config/d1-webpack.base.js

Lines changed: 0 additions & 205 deletions
This file was deleted.
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
const path = require('path');
2+
const webpack = require('webpack');
3+
const HtmlWebpackPlugin = require('html-webpack-plugin');
4+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
5+
const ProgressBarPlugin = require('progress-bar-webpack-plugin');
6+
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
7+
const StatsPlugin = require('stats-webpack-plugin');
8+
const HappyPack = require('happypack');
9+
const os = require('os');
10+
const happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length });
11+
const theme = require('./theme');
12+
const pkgJson = require('../package');
13+
14+
const devMode = process.env.NODE_ENV === 'development';
15+
const babelOptions = {
16+
cacheDirectory: true,
17+
babelrc: false,
18+
presets: [require.resolve('@babel/preset-env'), require.resolve('@babel/preset-typescript'), require.resolve('@babel/preset-react')],
19+
plugins: [
20+
[require.resolve('@babel/plugin-proposal-decorators'), { legacy: true }],
21+
[require.resolve('@babel/plugin-proposal-class-properties'), { loose: true }],
22+
[require.resolve('@babel/plugin-proposal-private-methods'), { loose: true }],
23+
[require.resolve('@babel/plugin-proposal-private-property-in-object'), { loose: true }],
24+
require.resolve('@babel/plugin-proposal-export-default-from'),
25+
require.resolve('@babel/plugin-proposal-export-namespace-from'),
26+
require.resolve('@babel/plugin-proposal-object-rest-spread'),
27+
require.resolve('@babel/plugin-transform-runtime'),
28+
require.resolve('@babel/plugin-proposal-optional-chaining'), //
29+
require.resolve('@babel/plugin-proposal-nullish-coalescing-operator'), // 解决 ?? 无法转义问题
30+
require.resolve('@babel/plugin-proposal-numeric-separator'), // 转义 1_000_000
31+
devMode && require.resolve('react-refresh/babel'),
32+
].filter(Boolean),
33+
};
34+
35+
module.exports = {
36+
entry: {
37+
[pkgJson.ident]: ['./src/index.tsx'],
38+
},
39+
resolve: {
40+
symlinks: false,
41+
extensions: ['.web.jsx', '.web.js', '.ts', '.tsx', '.js', '.jsx', '.json'],
42+
alias: {
43+
'@src': path.resolve(process.cwd(), 'src'),
44+
},
45+
},
46+
plugins: [
47+
new ProgressBarPlugin(),
48+
new CaseSensitivePathsPlugin(),
49+
new StatsPlugin('manifest.json', {
50+
chunkModules: false,
51+
source: true,
52+
chunks: false,
53+
modules: false,
54+
assets: true,
55+
children: false,
56+
exclude: [/node_modules/],
57+
}),
58+
new HappyPack({
59+
id: 'babel',
60+
loaders: [
61+
'cache-loader',
62+
{
63+
loader: 'babel-loader',
64+
options: babelOptions,
65+
},
66+
],
67+
threadPool: happyThreadPool,
68+
}),
69+
new webpack.DefinePlugin({
70+
'process.env': {
71+
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
72+
RUN_ENV: JSON.stringify(process.env.RUN_ENV),
73+
},
74+
}),
75+
new HtmlWebpackPlugin({
76+
meta: {
77+
manifest: 'manifest.json',
78+
},
79+
template: './src/index.html',
80+
inject: 'body',
81+
}),
82+
].filter(Boolean),
83+
module: {
84+
rules: [
85+
{
86+
parser: { system: false },
87+
},
88+
{
89+
test: /\.(js|jsx|ts|tsx)$/,
90+
exclude: /node_modules\/(?!react-intl|@didi\/dcloud-design)/,
91+
use: [
92+
{
93+
loader: 'happypack/loader?id=babel',
94+
},
95+
],
96+
},
97+
{
98+
test: /\.(png|svg|jpeg|jpg|gif|ttf|woff|woff2|eot|pdf)$/,
99+
use: [
100+
{
101+
loader: 'file-loader',
102+
options: {
103+
name: '[name].[ext]',
104+
outputPath: './assets/image/',
105+
esModule: false,
106+
},
107+
},
108+
],
109+
},
110+
{
111+
test: /\.(css|less)$/,
112+
use: [
113+
MiniCssExtractPlugin.loader,
114+
'css-loader',
115+
{
116+
loader: 'less-loader',
117+
options: {
118+
javascriptEnabled: true,
119+
modifyVars: theme,
120+
},
121+
},
122+
],
123+
},
124+
],
125+
},
126+
node: {
127+
fs: 'empty',
128+
net: 'empty',
129+
tls: 'empty',
130+
},
131+
stats: 'errors-warnings',
132+
};
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
2+
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
3+
const pkgJson = require('../package');
4+
5+
module.exports = {
6+
mode: 'development',
7+
plugins: [
8+
new MiniCssExtractPlugin(),
9+
new ReactRefreshWebpackPlugin({
10+
overlay: false,
11+
}),
12+
],
13+
devServer: {
14+
host: '127.0.0.1',
15+
port: pkgJson.port,
16+
hot: true,
17+
open: false,
18+
publicPath: `http://localhost:${pkgJson.port}/${pkgJson.ident}/`,
19+
inline: true,
20+
disableHostCheck: true,
21+
historyApiFallback: true,
22+
headers: {
23+
'Access-Control-Allow-Origin': '*',
24+
},
25+
},
26+
output: {
27+
path: '/',
28+
publicPath: `http://localhost:${pkgJson.port}/${pkgJson.ident}/`,
29+
library: pkgJson.ident,
30+
libraryTarget: 'amd',
31+
filename: '[name].js',
32+
chunkFilename: '[name].js',
33+
},
34+
devtool: 'cheap-module-eval-source-map',
35+
};

0 commit comments

Comments
 (0)