首页 > 解决方案 > create-react-app 不放弃 node_module 的内存

问题描述

我已经根据Link设置了使用 NodeJS 做出反应

由于我正在学习 React,因此我必须创建多个小项目。我正在使用create-react-app 这个。为此,我需要有效的 Internet 连接来下载依赖项(我已经为以前的项目下载了这些依赖项)。节点被安装,这导致:

  1. 延迟创建应用程序(即使我们在创建以前的应用程序时安装了节点。
  2. 为 node_modules 文件夹分配约 200 MB

是否可以重用为一个项目创建的依赖项,以便在另一个项目中使用?

我曾尝试将node_modules从早期项目复制到这个项目,但在执行时出现以下错误npm start

> products@0.1.0 start /Users/Deven/playground/React/test
> react-scripts start

internal/modules/cjs/loader.js:783
    throw err;
    ^

Error: Cannot find module '../scripts/start'

本质上,文件的软链接被破坏了。复制 node_modules 也会占用空间,所以我想重用它

标签: node.jsreactjs

解决方案


我可以在主应用程序中使用 node_modules 并通过为 main 中的每个应用程序创建子目录来重用相同的解决方法。在示例中,我创建了名为 mouseover 的应用程序

  1. 使用命令创建一个应用程序。create-react-app

create-react-app main

  1. 它将有 node_modules、public 和 src 文件夹。和文件夹很小,我们可以为单个应用程序创建这些文件夹publicsrc
  2. 对于新应用,在 main 的 src 目录中为应用创建一个文件夹。

    cd main/src/ mkdir mouseover

  3. 将 Samplepublic和复制src到新文件夹。

cp -r ../../sample/src ./mouseover/ cp -r ../../sample/public ./mouseover/

  1. 修改 App.js 以App从新的应用程序文件夹中的 `src/App' 导入并返回它(要使用的 main 的 index.js)

sed -i '' 's/import App1 from .*/import App1 from \".\/mouseover\/src\/App\"/g' App.js

从新应用导入 App 并返回后,main 中的 App.js 将如下所示。

import React from "react"

import "./App.css"
import App1 from "./mousehover/src/App"

function App() {
  return (
    <App1 />
  )
}

export default App

推荐阅读