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樱释ღ( ´・ᴗ・` )

    打不死的小强
  • 相关阅读:
    解决android.os.NetworkOnMainThreadException
    android 模拟器对应键盘快捷键
    Android上解析Json格式数据
    命令行的由来
    Linux测网速
    cacti
    判断端口是否开放
    Linux中运行c程序,与系统打交道
    python 多线程
    Leetcode 编程训练(转载)
  • 原文地址:https://www.cnblogs.com/mggahui/p/13823433.html
Copyright © 2011-2022 走看看