我用create-react-app包创建了一个ReactJS项目,工作得很好,但我找不到webpack文件和配置。

react-create-app如何与webpack一起工作?webpack配置文件位于create-react-app的默认安装中的哪里?我无法在项目文件夹中找到配置文件。

我没有创建覆盖配置文件。我可以用其他文章管理配置设置,但我想找到传统的配置文件。


当前回答

我知道现在已经很晚了,但是对于将来偶然发现这个问题的人来说,如果你想要访问CRA的webpack配置,除了运行之外没有其他方法:

$ npm run eject

然而,使用弹出,您将从CRA更新管道中剥离自己,因此从弹出的角度来看,您必须自己维护它。

我遇到过这个问题很多次,因此我为react应用程序创建了一个模板,它具有与CRA大部分相同的配置,但也有额外的好处(如样式化组件,jest单元测试,Travis ci用于部署,更漂亮,ESLint等),以使维护更容易。看看回购。

其他回答

我知道现在已经很晚了,但是对于将来偶然发现这个问题的人来说,如果你想要访问CRA的webpack配置,除了运行之外没有其他方法:

$ npm run eject

然而,使用弹出,您将从CRA更新管道中剥离自己,因此从弹出的角度来看,您必须自己维护它。

我遇到过这个问题很多次,因此我为react应用程序创建了一个模板,它具有与CRA大部分相同的配置,但也有额外的好处(如样式化组件,jest单元测试,Travis ci用于部署,更漂亮,ESLint等),以使维护更容易。看看回购。

如果你想找到webpack文件和配置,去你的包。Json文件,并寻找脚本

你会发现scripts对象正在使用一个react-scripts库

现在转到node_modules,查找react-script-in-node-modules文件夹中的react-scripts

这个react-scripts/scripts和react-scripts/config文件夹包含了所有的webpack配置。

我正在使用craco的create-react-app,当我用craco.config.js更新到webpack 5时,我能够覆盖我的webpack配置:

module.exports = {
    style: {
        postcssOptions: {
            plugins: [
            require('tailwindcss'),
            require('autoprefixer'),
            ],
        },
    },
    webpack: {
        configure: (webpackConfig, { env, paths }) => {
            // eslint-disable-next-line no-param-reassign
            webpackConfig.resolve.fallback = {
                fs: false,
            };
            return webpackConfig;
        },
    },
}

很多人来到这个页面的目的是寻找webpack配置和文件,以便将自己的配置添加到其中。另一种不运行npm run eject的方法是使用react-app-rewired。这允许你覆盖你的webpack配置文件而不弹出。

尝试弹出配置文件,通过运行:

npm run eject

然后你会发现在你的项目中创建了一个配置文件夹。你会发现你的webpack配置文件init。