Javascript 升级网页包4网页包合并问题

Javascript 升级网页包4网页包合并问题,javascript,reactjs,compiler-errors,webpack-4,babel-loader,Javascript,Reactjs,Compiler Errors,Webpack 4,Babel Loader,我一直在尝试将React项目更新到webpack4,但无论配置或建议/解决方案如何,我都会尝试,但仍然存在错误 我目前有以下设置: package.json B.法律改革委员会 webpack.common.js webpack.dev.js webpack.prod.js index.js 当前错误为: 从中生成./src/index.js模块时出错 ./node_modules/babel loader/lib/index.js:错误:找不到模块 来自的“巴别塔预设环境” '用户/mywor

我一直在尝试将React项目更新到webpack4,但无论配置或建议/解决方案如何,我都会尝试,但仍然存在错误

我目前有以下设置:

package.json

B.法律改革委员会

webpack.common.js

webpack.dev.js

webpack.prod.js

index.js

当前错误为:

从中生成./src/index.js模块时出错 ./node_modules/babel loader/lib/index.js:错误:找不到模块 来自的“巴别塔预设环境” '用户/mywork/dev' -你是说@babel/env吗

我以前使用stage-2或stage-0启用箭头功能等,但这似乎与预设环境相冲突,因此现在已删除该功能,并按照建议扩展了.babelrc预设,但似乎仍无法使整个功能正常工作


欢迎任何建议,谢谢。

您将在两个位置指定babel选项,首先在.babelrc中,然后在webpack.commonn.js中。webpack.commonn.js中的选项优先,但该设置错误:

presets: ['env','react','es2015']
根据以上内容,您告诉巴贝尔查找您未安装的“巴贝尔预设环境”、“巴贝尔预设反应”等

因此,您得到了错误:

Cannot find module 'babel-preset-env' from 'user/mywork/dev' - Did you mean "@babel/env"?
自从安装之后:

@babel/preset-env, and @babel/preset-react, etc. 
您应该指定:

presets: ['@babel/env','@babel/preset-react', .... ],
但您应该在一个位置指定babel的选项,无论是在webpack的配置中还是在.babelrc中,而不是在两个位置

我注意到的另一个错误是:babel插件转换类属性,它与bable@7. 您应该安装@babel/plugin建议类属性

const merge = require('webpack-merge');
const common = require('./webpack.common');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');

module.exports = merge(common, {
    mode: 'production',
    optimization: {
        minimizer: [
            new UglifyJSPlugin({
                sourceMap: true,
                uglifyOptions: {
                    compress: {
                        inline: false
                    },
                    mangle: {
                        keep_fnames: true
                    }
                }
            })
        ]
    },
    devtool: 'source-map'
});
"use strict";
import React from 'react';
import ReactDOM from 'react-dom';
import './styles/app.scss';
import App from './components/App';

if (process.env.NODE_ENV !== 'production') {
    console.log('USING DEV configuration')
}

const app = (
    <App/>
);
ReactDOM.render(app, document.getElementById('app'));
presets: ['env','react','es2015']
Cannot find module 'babel-preset-env' from 'user/mywork/dev' - Did you mean "@babel/env"?
@babel/preset-env, and @babel/preset-react, etc. 
presets: ['@babel/env','@babel/preset-react', .... ],