npm link调试本地包的坑

58 阅读1分钟

当用npm link命令调试本地包时,假设项目名称为myApp,调试的包名称为ModuleA,而ModuleA又依赖于react(也就是说peerDependencies里有react)。

如果你用的是vite,那么项目用得react最终都是 myApp/node_modules/react

如果你用的是webpack,那么项目用得react是myApp/node_modules/react,而ModuleA用得react是myApp/node_modules/ModuleA/node_modules/react。 如果你想保持都用myApp/node_modules/react需要手动把myApp/node_modules/ModuleA/node_modules/react删掉。

此坑一般只在调试时遇到,因为线上环境ModuleA下的node_modules里不会有react,而调试时为了开发方便一般会安装。