zoukankan      html  css  js  c++  java
  • npm与package.json

    npm与package.json

    nodejs入门教程

    从概念上讲,npm-install的“输入”是package.json,而其“输出”是一个完整的node_modules树:表示您声明的依赖项。在理想的世界中,npm就像一个纯函数一样工作:package.json相同的node_modules 树应该随时产生完全相同的树。

    但是在许多其他情况下,npm无法做到这一点。原因有很多:

      1,可能已经使用了不同版本的npm(或其他软件包管理器)来安装软件包,每种版本使用的安装算法略有不同。

      2,自上次安装软件包以来,可能已经发布了直接semver-range软件包的新版本,因此将使用较新的版本。

      3,您的一个依赖项的一个依赖项可能已经发布了一个新版本,即使您使用固定的依赖项指定符(1.2.3代替^1.2.3),该版本也会更新。

      4,您从中安装的注册表不再可用,或允许版本发生变化(与主要的npm注册表不同),并且现在在同一版本号下存在一个软件包的不同版本。

    package-lock.json的存在会更改安装行为,从而:

      1,包锁描述的模块树被复制。这意味着使用“已解决”中引用的特定文件(如果有)来重现文件中描述的结构,如果没有,则使用“版本”降到正常的包解析度。

      2,遍历树,以常规方式安装所有丢失的依赖项

    当我们使用 nvm 切换不同 node 版本的同时,npm 的版本同时也会被切换掉(因为不同node版本自带的npm版本不同),所以当我们切换npm版本的时候,若遇到运行或者安装报错,建议执行如下命令

     npm cache clear --force
     npm uninstall 
     rm -rfv node_modules
     rm -rfv package-lock.json
     npm install

    即先删除npm安装模块node_module,然后清除node_module的缓存,删除包锁定文件package-lock.json文件,最后重新安装依赖

    @萍2樱释ღ( ´・ᴗ・` )

    打不死的小强
  • 相关阅读:
    HDU 5918 SequenceI (2016 CCPC长春站 KMP模版变形)
    HDU 4585 Shaolin (set的应用)
    HDU 4329 MAP(stringstream的用法)
    CodeForces 698B Fix a Tree (并查集应用)
    UVALive 2520 Holedox Moving(BFS+状态压缩)
    UVA
    毛竹
    kmp
    博弈论
    最长回文子串
  • 原文地址:https://www.cnblogs.com/mggahui/p/13823433.html
Copyright © 2011-2022 走看看