我尝试通过将该文件夹放置在所有 React 应用程序的父目录中来在几个 React 应用程序之间共享相同的“node_modules”文件夹,根据 React 文档,这是可能的。但是“npm start”说:错误!生命周期。 请帮忙...
我使用
npx create-react-app app_name
命令创建了 4 个 React 应用程序。
并从每个应用程序中删除除一个之外的所有 node_modules 文件夹,并将其放置如下:
my_projects
node_modules
app_1
src
package.json
app_2
src
package.json
app_3
src
package.json
app_4
src
package.json
有关此的 React 文档:https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders
您可以使用符号或软链接。通过使用符号链接,我们可以为所有使用相同版本的 npm 包版本的所有项目提供单个
node_module
添加完所有内容后
cd app_1 (for all app_2,app_3,app_4)
sudo ln -s /my_projects/node_modules node_modules
npm start or yarn start
之后
node_module
将在所有目录上创建符号链接,如下
/my_projects
node_modules
package.json
app_1
node_modules (for all its just a symbolic soft link to /my_projects/node_modules)
src
package.json (clone of /my_projects/package.json for all bellow)
app_2
node_modules
src
package.json
app_3
node_modules
src
package.json
app_4
node_modules
src
package.json
使用此功能,您可以为所有子项目维护一个
node_module
。另请检查包管理器 https://pnpm.io/ 了解高级用例
编辑1:您可以通过
删除这些链接rm node_modules
我今天遇到了同样的问题,我很感激@Vimal Raj 给了我这个想法。 对于那些想知道这里有相同解决方案但在 Windows 中的人:
我想将我的 React 应用程序排列在文件夹
design-patterns
下,以便文件夹 node_modules
仅使用一次
<DIR> node_modules (the main node_modules directory)
<DIR> controlled-components
<DIR> custom-hooks
<DIR> recursive-components
<DIR> split-screen-components
创建项目时,进入项目的根目录(例如:custom-hooks),不要说“
npm install
”,而是创建一个指向已存在的“node_modules
”目录的“软链接”。
在 Windows 上,您可以使用以下命令在 CMD 从子项目的文件夹中创建软链接:
mklink \J node_modules ..\node_modules
结果应该是:
<JUNCTION> node_modules (shortcut to the node_modules in the parent directory)
package-lock.json
package.json
<DIR> public
server.js
<DIR> src
我尝试使用 GUI 方法(上下文菜单中的
Create shortcut
按钮)实现相同的目标,但该方法失败了。