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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
| // vue.config.js - 适配 Webpack 4 的版本
| const path = require('path');
|
| module.exports = {
| productionSourceMap: false,
| lintOnSave: false,
|
| // 转译这些包
| transpileDependencies: [
| 'vue-router',
| 'vue-draggable-next',
| 'vuex',
| 'element-plus'
| ],
|
| devServer: {
| port: 8080,
| overlay: false,
| hot: true
| },
|
| css: {
| sourceMap: true
| },
|
| configureWebpack: {
| module: {
| rules: [
| // 处理 .mjs 文件 - 简化版本,移除 fullySpecified
| {
| test: /\.mjs$/,
| include: /node_modules/,
| type: 'javascript/auto'
| },
| {
| test: /\.s[ac]ss$/,
| use: ['sass-loader']
| }
| ]
| },
| resolve: {
| extensions: ['.js', '.vue', '.json', '.mjs'],
| // Webpack 4 不支持 fullySpecified,移除或改为其他方式
| mainFields: ['module', 'main'] // 优先使用 ES 模块
| }
| },
|
| chainWebpack: (config) => {
| config.plugins.delete('prefetch');
| config.plugin('html').tap((args) => {
| args[0].title = 'WMS';
| return args;
| });
|
| // ========== 修复 Webpack 4 兼容性 ==========
|
| // 1. 删除有问题的规则(如果存在)
| config.module.rules.delete('mjs');
|
| // 2. 创建简化的 .mjs 处理规则
| config.module
| .rule('mjs')
| .test(/\.mjs$/)
| .include
| .add(/node_modules\/vue-router/)
| .add(/node_modules\/vue-draggable-next/)
| .add(/node_modules\/element-plus/)
| .end()
| .type('javascript/auto');
|
| // 3. 配置 JS 文件处理
| config.module
| .rule('js')
| .test(/\.js$/)
| .include
| .add(path.resolve(__dirname, 'src'))
| .add(/node_modules\/vue-router/)
| .add(/node_modules\/vue-draggable-next/)
| .add(/node_modules\/element-plus/)
| .add(/node_modules\/vuex/)
| .end()
| .use('babel-loader')
| .loader('babel-loader')
| .options({
| cacheDirectory: true,
| presets: [
| ['@babel/preset-env', {
| targets: {
| browsers: ['> 1%', 'last 2 versions', 'not dead'],
| node: '16.0.0'
| },
| modules: 'commonjs' // Webpack 4 需要 commonjs
| }]
| ],
| plugins: [
| // 处理可选链操作符
| '@babel/plugin-proposal-optional-chaining',
| // 处理空值合并操作符
| '@babel/plugin-proposal-nullish-coalescing-operator'
| ]
| });
| }
| };
|
|