我如何阻止node_modules中的pretier依赖覆盖项目.pretierrc ?



node_modules文件夹中有一个prettier安装包。json表示"version": "1.19.1",),这是覆盖。pretierrc在我的项目根。

当我删除该目录时,格式恢复正常。

但这只是暂时的,因为npm i把它放了回来。有些东西有它作为依赖,即使搜索"prettier"1.19.1只返回package-lock.json

我有其他项目没有node_modules安装prettier也能正常工作,但这个github模板有。

我怎样才能弄清楚?理想情况下,我只想使用项目级别.prettierrc

您可以通过在package-lock.json中搜索找出哪个包是罪魁祸首。这里的每个包都有一个requires字段,列出了它的依赖项。这样,您就可以遍历该链,找出导致安装的依赖项。

找到包后,有几个选项可以强制使用特定的依赖项。在您的情况下,您将强制安装最新版本的prettier-plugin-svelte。在你的情况下,最好使用npm shrinkwrap。首先将最新版本的prettier-plugin-svelte添加到package.json,然后执行npm i,然后确保只有最新版本的prettier-plugin-svelte出现在node_modules中,然后运行npm shrinkwrap。更多信息在这里:https://nodejs.org/en/blog/npm/managing-node-js-dependencies-with-shrinkwrap/

关于各种工具(npm/yarn)强制版本的更多信息和替代方案可以在这个StackOverflow答案中找到:我如何覆盖嵌套的npm依赖版本?

最新更新