1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

react项目关于webpack配置修改

前言

您好,我是本际云服务器推荐网的小编小本本。如果您使用CRA脚手架构建的项目想要修改webpack配置,一般情况下需要将其释放或通过插件去更改和覆盖配置。接下来,我将介绍以下几种常见方式:

react项目关于webpack配置修改

利用react-app-rewired修改或覆盖配置(推荐)

方法一:

  1. 下载插件和依赖
  2. yarn add react-app-rewired customize-cra babel-plugin-import -D

  3. 修改package.json
  4. 将scripts中的内容修改为以下代码:


    {
    "scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "eject": "react-scripts eject"
    }
    }

  5. 新建config-overrides.js文件
  6. 在项目根目录下新建config-overrides.js文件并添加以下代码:


    const { override, fixBabelImports, addLessLoader } = require("customize-cra");
    module.exports = override(
    fixBabelImports("import", {
    libraryName:'antd',
    libraryDirectory:"es",
    style:true
    }),
    addLessLoader({
    javascriptEnabled:true
    })
    );

这里的配置能够使webpack支持less语法。可以发现,这里与通常配置的webpack不太一样。详细配置可以查看react-app-rewired官方文档。然后,将App.css和index.css文件改为App.less和index.less,并在项目中引入即可。

利用插件@craco/craco修改或覆盖配置

方法二:

  1. 安装插件和依赖
  2. yarn add @craco/craco craco-less @babel/plugin-proposal-decorators babel-plugin-import -D

  3. 新建craco.config.js文件
  4. 在根目录下新建craco.config.js文件并添加以下代码:


    const CracoLessPlugin = require("craco-less");
    const path = require('path');
    const pathResolve = pathUrl => path.join(__dirname, pathUrl);
    module.exports = {
    webpack: {
    alias: {
    '@': pathResolve('src')
    }
    },
    babel: {
    plugins: [
    ['@babel/plugin-proposal-decorators', { legacy: true }]
    ]
    },
    plugins: [
    {
    plugin: CracoLessPlugin,
    options: {
    lessLoaderOptions: {
    lessOptions: {
    modifyVars: {},
    javascriptEnabled: true
    }
    }
    }
    }
    ]
    };

这里的配置支持引入@别名,以及使用装饰器。具体使用在src下新建pages/index.js文件,然后在该文件中引入插件。@babel/plugin-proposal-decorators很好理解,代表支持装饰器。@craco/craco则是可以更方便的修改webpack配置。

完全编译webpack到项目中

方法三:

  1. 释放webpack配置
  2. 可以通过执行yarn eject命令将CRA脚手架将webpack等复杂的配置封装在项目中的配置释放,使之可见,并然后自行修改。但该过程不可逆,且项目文件将骤增。

  3. 配置less-loader
  4. 配置引入less-loader在config/webpack.config.js文件的module/rules下添加该配置,并在项目中添加common.less文件。最后在index.tsx文件中引入即可。

注意:less-loader版本不能超过6.0.0,否则会报错。而且该方案会使项目文件骤增,并且适用于已经了解了webpack配置。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7404.html