当前位置:首页 > React

react打包如何不删除源码

2026-01-25 17:32:30React

配置自定义构建输出目录

在项目根目录下创建或修改 craco.config.js(使用CRACO)或 config-overrides.js(使用react-app-rewired),通过覆盖Webpack配置保留源码。以下示例使用CRACO:

const path = require('path');
module.exports = {
  webpack: {
    configure: (webpackConfig) => {
      webpackConfig.output.path = path.resolve(__dirname, 'build_with_source');
      return webpackConfig;
    }
  }
};

修改package.json构建脚本

调整构建命令以使用自定义配置工具。对于CRACO用户:

"scripts": {
  "build": "craco build",
  "build:with-source": "react-scripts build && cp -r src build/src"
}

手动复制源码到构建目录

在构建完成后执行文件复制操作。Linux/macOS系统可使用shell命令:

react-scripts build && cp -r src build/src

Windows系统可使用PowerShell命令:

react打包如何不删除源码

react-scripts build && xcopy /E /I src build\src

使用环境变量控制源码保留

创建 .env 文件添加配置:

GENERATE_SOURCEMAP=true
INLINE_RUNTIME_CHUNK=false

配置Webpack的SourceMap选项

通过自定义配置启用详细source map:

react打包如何不删除源码

// craco.config.js
module.exports = {
  webpack: {
    configure: {
      devtool: 'source-map'
    }
  }
};

使用文件系统插件自动备份

安装copy-webpack-plugin并配置:

const CopyPlugin = require("copy-webpack-plugin");
module.exports = {
  webpack: {
    plugins: [
      new CopyPlugin({
        patterns: [
          { from: "src", to: "src_backup" }
        ],
      }),
    ],
  }
};

创建构建后脚本

添加Node.js脚本postbuild.js

const fs = require('fs-extra');
fs.copySync('./src', './build/src');

在package.json中添加:

"scripts": {
  "postbuild": "node postbuild.js"
}

以上方法可根据实际需求组合使用,注意生产环境保留源码可能带来安全风险,建议仅用于开发或测试环境。

标签: 源码react
分享给朋友:

相关文章

react如何更新

react如何更新

更新 React 项目的方法 检查当前 React 版本 在项目根目录的 package.json 文件中查看 react 和 react-dom 的版本号。也可以通过命令行运行以下命令查看: n…

react实现vue

react实现vue

React 实现 Vue 功能 React 和 Vue 是两种不同的前端框架,但可以通过一些方法在 React 中实现 Vue 的特性。以下是几种常见 Vue 功能在 React 中的实现方式: 双…

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

vue源码实现

vue源码实现

Vue 源码实现的核心模块分析 Vue.js 的源码实现主要围绕响应式系统、虚拟 DOM、模板编译等核心模块展开。以下是关键部分的实现原理和代码结构解析。 响应式系统 Vue 的响应式基于 Obj…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

如何记忆react

如何记忆react

理解核心概念 React的核心概念包括组件、状态(state)、属性(props)、生命周期方法(类组件)和钩子(函数组件)。掌握这些基础概念是记忆React的关键。组件是React应用的构建块,分为…