如何将node modules安装到React项目文件夹以外的位置
问题原因
你之前执行npm install -g的操作无法正常启动项目是因为npm默认只会在项目根目录node_modules/.bin路径下查找脚本执行文件,全局安装的依赖不会被本地项目的npm脚本默认识别。
可行解决方案
方案1:指定依赖安装到项目外路径(推荐,不会出现多项目版本冲突)
- 在项目根目录新建
.npmrc文件,写入以下内容,路径替换为你希望存放依赖的、不在同步目录范围内的绝对路径:
prefix = 自定义的依赖存储绝对路径
比如Windows环境可以写prefix = D:\npm-storage\react-demo,macOS/Linux环境可以写prefix = /home/yourname/npm-storage/react-demo
2. 删除项目根目录下已存在的node_modules文件夹和package-lock.json文件
3. 正常执行npm install,所有依赖都会安装到你指定的外部路径,项目根目录不会生成node_modules文件夹
4. 修改项目package.json中的scripts配置,所有执行命令前加上npm exec,示例如下:
"scripts": { "start": "npm exec react-scripts start", "build": "npm exec react-scripts build", "test": "npm exec react-scripts test", "eject": "npm exec react-scripts eject" }
之后正常执行npm start即可正常启动项目。
方案2:全部依赖全局安装
- 先查看你项目
package.json中dependencies和devDependencies下的所有包名,执行全局安装命令:npm install -g 包名1 包名2 包名3... - 修改
package.json的scripts配置,所有执行命令加上--global参数:
"scripts": { "start": "npm exec --global react-scripts start", "build": "npm exec --global react-scripts build" }
注意:该方案不推荐同时用于多个不同依赖版本的项目,会出现版本冲突问题。
注意事项
- 执行命令前可以运行
npm root -g查看npm全局安装路径,确保该路径已加入系统环境变量PATH,避免出现命令找不到的报错 - 每个项目建议单独指定不同的外部依赖存储路径,避免不同项目的依赖版本互相覆盖
内容的提问来源于stack exchange,提问作者brikas
相关产品推荐
相关产品推荐

