当前位置: 首页 > 知识库问答 >
问题:

前端 - 为什么执行npm link会出现类似npm install的行为(安装一些包到node_modules文件夹下)?

呼延衡
2023-11-10

在a目录下执行npm link(后边没有其他参数)
然后就会不断出现postinstall不断变动
显示正在解压缩包到a/node_modules文件夹下
然后a目录的node_modules就会更新一遍


执行完类似npm install的行为之后就是我预期的行为了:在全局包路径下建立一个指向当前a目录的软链接

共有1个答案

周超英
2023-11-10

npm link 命令是为了解决开发过程中,项目依赖问题的一种解决方案。它允许你将项目中的一个模块链接到另一个项目中,使其可以在另一个项目中直接使用。

当你执行 npm link 命令时,npm 会创建一个全局的符号链接,将你的项目中的模块暴露出来,使其可以在其他项目中直接使用。这个命令实际上是在你的项目的根目录下创建一个软链接,指向你当前的项目目录。

由于 npm link 命令会创建一个全局的符号链接,因此当你在执行该命令时,npm 会自动运行 npm install 命令,以确保你的项目中的所有依赖项都被正确地安装到 node_modules 文件夹中。这是 npm 的一个特性,它会在执行 link 命令时自动运行 install 命令。

至于你提到的 postinstall 不断变动的问题,这可能是因为你的项目中存在一些 postinstall 脚本。这些脚本通常用于在安装依赖项后执行一些额外的操作,例如运行测试、构建代码等。当你执行 npm link 命令时,这些 postinstall 脚本会因为依赖项的改变而被触发,并执行相应的操作。

如果你不希望在执行 npm link 命令时出现类似 npm install 的行为,你可以尝试在执行 link 命令时使用 --production 参数。这个参数会告诉 npm 不要运行 postinstall 脚本,也不会自动运行 npm install 命令。例如:

npm link --production

但是请注意,这可能会导致你的项目中的依赖项没有被正确地安装或更新,因此在执行 link 命令之前最好确保你已经正确地安装了所有的依赖项。

 类似资料:
  • 比如fantastic-admin这个项目,计时如下: pnpm install 和 npm install 都是淘宝镜像 pnpm: 22.6s 包大小:281m 包占用空间:348m npm: 33s 包大小:277m 包占用空间:324m 这。。。有点尴尬了 我看官网写的是只要下过一次包,就会存在公共的pnpmStore里面供下次链接的方式指向,按理说大小应该大大降低吧。不过下包速度确实比n

  • amh安装的php7.4,使用composer或是curl访问需要tls1.2的网站时都会报错: 这可能是哪方面有问题? 下载过curl的证书写在了php.ini中也不起作用。

  • 问题内容: 如何在中使用模块的本地版本。例如,在我的应用中,我安装了coffee-script: 这会将其安装在中,coffee命令在中。当我在项目的主文件夹中时,是否可以运行此命令?我想我正在寻找类似于捆扎机中的东西。基本上,我想指定一个咖啡脚本的版本,参与该项目的每个人都应该使用。 我知道我可以添加该标志以在全球范围内安装它,这样咖啡在任何地方都可以正常工作,但是如果我想每个项目使用不同版本的

  • node_modules文件夹到底是什么,有什么用途? 我知道,当我们用< code>npm下载任何库时,该库会转到node_modules文件夹。我还知道,当我们要上传它时(例如,上传到GitHub ),我们必须忽略node_modules文件夹,因为它占用了很多空间。通过package.json文件,我们可以使用< code>npm i下载所有依赖项。 假设我想将我的应用程序/网站部署到某个服

  • 每次我试图编译它来测试它不recongnise文件

  • [大家好!每次我运行命令时,它都会创建node_modules文件夹,但该文件夹被排除在外!我也有一些警告,你可以看到,但我认为npm安装是成功的。 npm警告已弃用minimatch@2.0.10:请更新至minimatch 3.0。2或更高版本以避免RegExp DoS问题 npm警告已弃用minimatch@0.2.14:请更新至minimatch 3.0。2或更高版本以避免RegExp D