-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.babel.js
81 lines (74 loc) · 2.32 KB
/
webpack.config.babel.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
* @Author: tangdaoyong
* @Date: 2021-05-13 20:59:55
* @LastEditors: tangdaoyong
* @LastEditTime: 2021-05-14 14:45:48
* @Description: Webpack 配置文件
*/
import path from 'path'
/* - 常量 - */
// 入口
const ENTRYPATH = path.resolve(__dirname, './test/index.js');
// 出口
const OUTPUTPATH = path.resolve(__dirname, './build');
/* - 自定义webpack插件 - */
import RemoveUnusedFilesWebpackPlugin from './src/plugin/remove-unused-files-webpack-plugin';// 清除无用文件
/* - webpack插件 - */
import { CleanWebpackPlugin } from 'clean-webpack-plugin';// 清理构建文件夹
export default {
entry: {// 入口
app: ENTRYPATH
},
plugins: [
// 清理构建文件夹
new CleanWebpackPlugin(),
// 清除无用文件
new RemoveUnusedFilesWebpackPlugin({
patterns: ['test/**'],
removeUnused: true
})
],
output: {
path: OUTPUTPATH,// 出口路径
filename: '[name].bundle.js'
},
/*
https://ask.csdn.net/questions/7252963
pnpm run build:dev时node_modules中报错Module not found: Error: Can't resolve '*'
*/
// node: {
// fs: 'empty'
// },
resolve: {
// webpack5 中移除了nodejs核心模块的polyfill自动引入,需要手动引入。
fallback: {
"path": require.resolve("path-browserify"),
"assert": require.resolve("assert/"),
"stream": require.resolve("stream-browserify"),
"util": require.resolve("util/"),
"tty": require.resolve("tty-browserify"),
"buffer": require.resolve("buffer/"),
"crypto": require.resolve("crypto-browserify"),
"os": require.resolve("os-browserify/browser")
},
alias: {// 别名
root: path.resolve(__dirname, 'src/')
}
},
module: { // 加载器
rules: [// 规则
{
test: /\.js|jsx$/, // 匹配文件
exclude: /node_modules/, // 排除文件夹
use: [
{
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
} // babel 加载器
]
}
]
}
};