如何通过使用npm install或yarn安装仅具有自己版本的package.json依赖项

时间:2018-10-15 06:50:36

标签: node.js npm npm-install yarnpkg parceljs

我正在处理一个新项目,但是我无法正确安装软件包。我使用了npm installyarnnpm install --only=dev,但还不够。我也尝试删除node_modules和package-lock.json。状态是一样的。

我们在项目babel的6.x版本中使用。 Babel的更新为7.x,我认为我在运行npm installnpm install --only=devyarn时由于版本差异而收到错误消息。

  

npm WARN已弃用babel-preset-es2015@6.24.1:�感谢使用Babel:我们建议立即使用babel-preset-env:请阅读babeljs.io/env进行更新!   npm通知创建了一个作为package-lock.json的锁文件。您应该提交此文件。   npm WARN babel-loader@8.0.4需要一个对等体@ babel / core @ ^ 7.0.0,但没有安装。您必须自己安装对等依赖项。   npm WARN babel-loader@8.0.4需要一个webpack @> = 2的同位体,但未安装。您必须自己安装对等依赖项。

我使用WebStorm。在此之前,我尝试通过npm install获得另一个项目的软件包。 “ Npm”不成功。 WebStorm使用纱来建议我,而我使用纱。它工作了。

我应该在该州做什么?

npm install之后,当我运行parcel index.html时,出现控制台错误

  

“未捕获的TypeError:window.fooes不是构造函数”,未定义的ReferenceError:regeneratorRuntime未定义。

我知道代码没有问题,因为项目可以在团队的计算机上正常工作。

1 个答案:

答案 0 :(得分:0)

第一个也是最重要的:

切勿同时使用npmyarn。选择其中之一,并仅使用它们是因为它们都基于已安装的软件包使用了锁定文件。

使用哪个:

npmyarn都使用NPM软件注册表数据库。因此,最后安装软件包的最终结果是相同的,但是yarn的工作快得多。 Yarn是Facebook开发的,因为npm的运行缓慢。因此,我更喜欢yarn,而不再使用npm命令。

对于您的问题:

  • 删除项目根目录中的package-lock.jsonyarn.lock锁定文件。
  • 还删除整个node_modules目录。
  • 现在您只有package.json文件。 备份该文件
  • 打开原始的package.json,建议您首先删除其中的所有条目 与Babel相关并保存。
  • 现在在项目根目录(您的yarn文件所在的位置)运行package.json命令(无参数)。这应该再次安装所有软件包。

然后使用以下命令安装Babel的最新软件包:

  • yarn add -D @babel/core
  • yarn add -D @babel/preset-env
  • yarn add -D babel-loader

您可能需要Babel中的其他软件包。查看备份的package.json,并在npm registryBabel's plugins documentation page中搜索剩余插件(如果有)的最新版本。