如何在React项目中使用未发布的本地自定义包?
如何在React项目中使用未发布的本地自定义包?
嗨,我来帮你搞定这个问题!既然你已经生成了本地的country-all-data-1.0.7.tgz包文件,这里有两种实用的方法可以让你在React项目里用上它:
方法一:直接安装本地压缩包(适合一次性使用场景)
打开你的React项目终端,切换到项目根目录,根据你用的包管理器运行对应命令:
- 如果你用npm:
npm install /实际文件路径/country-all-data-1.0.7.tgz - 如果你用yarn:
yarn add file:/实际文件路径/country-all-data-1.0.7.tgz
注意:把上面的
/实际文件路径/换成你本地tgz文件的真实路径,比如Mac/Linux下可能是~/Desktop/country-all-data-1.0.7.tgz,Windows下可能是C:\Users\你的用户名\Desktop\country-all-data-1.0.7.tgz。
安装完成后,你就可以像使用普通npm包一样在代码里导入了:
import { 你需要的具体模块 } from 'country-all-data';
方法二:用npm link实现实时关联(适合需要频繁修改本地包的调试场景)
如果你还需要不断修改本地的country-all-data包,反复安装tgz会很麻烦,用npm link可以实现本地包和React项目的实时关联:
- 先进入你本地修改的
country-all-data包的根目录,运行:
这一步会把你的本地包全局链接到npm环境中。npm link - 回到你的React项目根目录,运行:
这样React项目就会直接使用你本地的包了,之后你对本地包做的修改,只要重新构建(如果包需要编译的话),React项目里就能立刻生效,省去重复安装的步骤。npm link country-all-data
额外提示
- 安装/链接完成后,可以打开项目的
package.json确认依赖是否正确添加:安装tgz会显示类似"country-all-data": "file:/xxx/country-all-data-1.0.7.tgz"的条目;用npm link则会显示包的版本号,但实际指向本地文件。 - 如果你的本地包需要编译(比如有ES6转译、打包步骤),记得先在本地包目录运行
npm run build(如果有这个脚本)再进行安装/链接,避免出现导入错误。
备注:内容来源于stack exchange,提问作者Ishwar
相关产品推荐
相关产品推荐

