我在一个使用自定义组件库的 Nextjs 项目中工作。该库是由团队开发的,我也在那里进行了更改。
为了在发布之前测试更改是否正常工作,我构建并打包项目,然后使用
yarn add <file_path>
在本地安装它或将 <file_path>
直接插入 package.json
。当我执行此操作并更新运行 yarn
命令的依赖项时,该命令有效,我可以看到新的依赖项安装在终端中,但当我运行开发服务器时,通常不会选择更改。我必须重新安装 node_modules
,删除 yarn.lock
和 .next
来运行服务器才能应用更改。有时我只从node_modules
中删除我试图在本地安装的包及其从yarn.lock
中的描述,然后重新安装依赖项并成功,有时它不起作用。
我看不到我所采取的操作背后的系统,并且想知道在Nextjs项目中使用yarn作为包管理器在本地处理包的最佳方法是什么,而不浪费时间重新安装
node_modules
。
附加问题:我看到有
watch
适用于yarn 1.0.2的API以及可以跟踪文件更改的其他库,这些可以用来解决我的问题吗?
我工作的团队想出的最好的办法就是使用
yalc
。它提供了一个用于在本地发布本地包的 --sig
标志。该标志向包添加哈希值。它有助于避免在每次更新时重新安装整个 node-modules
,并确保安装时 yarn
始终选择最新的软件包更改。
还有一个选项是我们自己将哈希附加到打包文件来决定问题,但我们决定使用现成的解决方案(yalc)。