当前位置:网站首页 > Node.js开发 > 正文

安装node npm(安装node报错)



一、npm包全局安装:https://blog.csdn.net/wu_xianqiang/article/details/

  需要注意的是,全局模式并不是将一个模块包安装为一个全局包的意思,它并不意味着可以从任何地方通过  来引用到它

  事实上,全局的包 在项目中根本 不能引入使用。

  【假设:如果可以使用,在项目的package.json文件中根本没有这个包,代码提交后。换个环境下载下来后,全局包不存在就报错了】

  1、全局模式这个称谓其实并不精确,存在诸多误导。实际上,  是将一个包安装为 全局可用的可执行命令。它根据包描述文件中的  字段配置,

    将实际脚本链接【win系统的连接,应该是通过.cmd文件实现的】到与Node可执行文件相同的路径下【即.cmd文件放在node程序同一目录下】:

二、npm包 本地 安装:就是在项目下的 node_module 安装相应的包。项目中可以直接调用。具体的流程看下面的 介绍。

  1、npm install 包名:下载指定的npm包。

    a、从指定的源上下载这个 包,命令行上指定源,这种方式只是临时用 从 这个源上下载。https://www.cnblogs.com/ivan0626/p/6668336.html 如下:

  2、npm install :下载package.json 中所有的包。

  下面写下 关键 流程步骤,细节的先不管

  1、首先检查 .npmrc 文件。(这个文件就是npm的配置文件)

    优先级为:项目级的 .npmrc 文件 > 用户级的 .npmrc 文件> 全局级的 .npmrc 文件 > npm 内置的 .npmrc 文件

    说明:检测 .npmrc配置文件的目的是,应该是 确定从哪里去下载 相应的包。【个人分析的,没有查到文档有这个说明。】

  2、检查项目中有无 lock 文件。

    若无 lock 文件:从远程获取 包信息,构建依赖树。 看 文档 https://www.cnblogs.com/everlose/p/12505245.html

    若有 lock 文件:和 package.json 不冲突,本身就是一个依赖树。可以跳过 构建依赖树的过程,到下一步。

  3、检测缓存中是否有包:

    a、缓存中有,直接把包解压 到 当前项目的node_modules目录。

    b、无缓存:从 npm 远程 仓库下载安装 包

  3、下载安装 包:https://blog.csdn.net/Alive_tree/article/details/

    a、下载压缩包,放在~/.npm目录。【这里下载应该会根据】

    b、将压缩包放到缓存中,并 解压压缩包到当前项目的node_modules目录。

    注意,一个模块安装后,本地其实保存了两份,一份是~/.npm下的压缩包,另一份是node_modules目录下解压后的代码。在npm install运行的时候,只会检查node_modules中的模块,而不会检查/.npm.也就是说,如果在/.npm中有压缩包但是node_modules中没有模块,npm install会从远程仓库再下载一次压缩包。

四、.npmrc 配置文件:

  1、.npmrc 文件的作用:https://www.jianshu.com/p/5a1bc7123f31

  2、npm安装私有仓库npm包:https://blog.csdn.net/huzhenv5/article/details/(两种方案) 或 https://segmentfault.com/q/49247

    说明:实现的功能是 npm install 时,大部分包都是从外网下载,公司内部 的包从内网下载

  3、如果某个包 安装,只是临时的配置。可以直接在npm 命令上,通过参数设置,而不需要设置 .npmrc文件。如,源的设置、信息显示的等级

五、包的组织【包的scope】:https://www.nps.ink/443589.html(为指定组织下的包 配置数据源 .npmrc配置) 或 https://blog.csdn.net/u013727805/article/details/80849329

六、package.json 自定义 包的 下载地址:https://www.cnblogs.com/tzyy/p/5193811.html(package.json属性详解)

  1、package.json 中 包 支持自定义 的下载路径有很多。如:urls、git urls【ssh 或 http】、github、Local Paths【本地路径也是可以的】。

    • urls:在版本范围的地方可以写一个url指向一个压缩包。注意是压缩包,而不是远程npm源的包信息。包信息里面有 对应的 压缩包地址【一般都是tar包】。
    • git urls:也可以指明 对应的 分支。
    • 其他的看文档。

  注意:npm仓库源上,每个包都有对应的包信息 文件(也是是一个json文件)。通过 npm info 也可以看到 包的信息,如:npm info axios。

     在没有 package-lock.json 时,npm install 时,构建模块依赖树。就要通过包信息来实现。

七、npm install 安装包的几种方式:【npm install安装的方式和package.json中信息是一致的】https://juejin.cn/post/#heading-2

  • 包名安装:
  • 包名加版本:
  • 包名加
  • tarball url:
  • tarball file:

    直接 install 包 也可以的(推荐下面这种)。 http://cuketest.com/zh-cn/shared/npm_offline

  • git url:
  • username/project:

注意:npm包有的依赖包因为文件较大,一般不会放在npm仓库,而是放在GitHub上,如 node-sass的 binding.node 二进制文件就是放在 GitHub上下载的。

八、package-lock.json 讲解:为什么 每次 npm install 时,package-lock.json文件就会改变。

  1、package.json 中 包 的信息是可以手动修改的,比如版本范围、包的地址等。所以npm install 时,package-lock.json 会 package.json做个比较看是否会冲突。

    在不冲突时,直接使用 package-lock.json 下载定义的包。而 不需要 再去 构建 依赖树。

  2、package-lock.json 本身的架构就是 一直 依赖树的 结构。所以可以直接下载对应的包。

九、 npm命令 调整日志等级:https://www.cnblogs.com/k4nz/p/14238164.html 或 https://blog.csdn.net/john987321456/article/details/112183317 或

https://blog.csdn.net/weixin_/article/details/(里面有说明等级参数的 几个 快捷方式,如 --verbose)

如:npm install 安装时,显示更多的信息:https://segmentfault.com/q/26783

上面两个都是在当前命令上设置 这个日志 等级【日志,一般都是

当前命令 看下 日志

,不会全局去设置】,也可以在全局上设置 日志等级。

十、npm 缓存:https://blog.csdn.net/liuyan/article/details/(看缓存那一块)

1、清除缓存 好像 不让用,试过几次都不成功。但是可以通过 设置

优先使用网络数据

2、

使用网络数据

:添加参数 --prefer-online

hr>

一、node-sass 下载安装 失败:node-sass 国内下载报错的 概率是相当高。基本新环境的电脑,国内100%会出现这个问题。

参考:https://www.cnblogs.com/Qooo/p/14021354.html(有说明原因)或 https://blog.csdn.net/weixin_44653329/article/details/103827492 或 https://www.w3cschool.cn/article/29315017.html

1、node-sass 安装步骤 分析:

  1. 校验本地node_modules中是否已安装node-sass,版本是否一致;
  2. 如未安装或版本不符,从npm源安装node-sass本体;
  3. 检测全局缓存和本地中是否有binding.node,如有即跳过安装;
  4. 没有binding.node则从github下载该二进制文件并将其缓存到全局;
  5. 假如binding.node下载失败,则尝试本地编译出该文件;
  6. 将版本信息写到package-lock.json;

由此看到,实际上node-sass依赖了一个二进制文件binding.node,从npm源安装完本体后还会从github下载binding.node。

2、因此 安装 失败原因有以下几种:

原因一

:npm源速度慢:国外npm源速度慢,可以使用 淘宝镜像源。改变了npm源,node-sass 包的 下载 快了。但是

binding.node

默认是从github下载

的,不是

从npm源上下载的。所以 只是 改变 npm 的源,node-sass包 还是会 出现 安装失败的可能,还需要改变 node-sass包的下载路径。

原因二

:binding.node源无法访问或速度慢:node-sass除了npm部分的代码,还会下载二进制文件binding.node,默认源是github,

国内访问较慢,特殊时期甚至无法访问。我们也可以将其改成国内源。

解决办法:

把 binding.node 源

设置

国内的

淘宝镜像的源

。  https://blog.csdn.net/_/article/details/

或【

推荐这种方式设置

或 【

不推荐这种

,电脑重启后,设置的环境变量没有了。不知道是不是告诉电脑没有管理员权限的问题导致的】

  

注意:

国内 基本都是这个原因 导致的 安装 失败

。 当然 直接把 文件下载下来,把 sass_binary_site 指向本地路径也是可以的。

3、类似问题的npm包 还有:chromedriver,phantomjs,electron等。   https://blog.csdn.net/weixin_/article/details/

   原因三

:由于nodejs版本高导致node-sass安装不了:解决办法参考文档

原因四

:缓存中binding.node版本不一致: 参考文档

原因五

:安装失败后重新安装:安装失败后重新安装,有可能无权限删除已安装内容,此时npm uninstall node-sass或手动删掉原目录后再安装即可。

原因六

:提示没有安装python、build失败:假如拉取binding.node失败,node-sass会尝试在本地编译binding.node,过程就需要python。

1、node-sass 拉取 binding.node 失败。就会 尝试在本地编译 binding.node。

本地编译 binding.node 就需要 python 环境。

  1. 下载压缩包,放在~/.npm目录
  2. 解压压缩包到当前项目的node_modules目录

到此这篇安装node npm(安装node报错)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 安装node js(安装nodejs步骤微信小程序)2024-12-07 13:18:05
  • 找不到node.js(找不到nodejs二进制文件npm路径不存在)2024-12-07 13:18:05
  • nodejs安装python(nodejs安装在哪个盘)2024-12-07 13:18:05
  • node.js安装失败2503(node.js安装失败2203)2024-12-07 13:18:05
  • nodejs安装出错(nodejs10安装)2024-12-07 13:18:05
  • 升级 node(升级node后依赖用不了)2024-12-07 13:18:05
  • 安装nodesass环境中报错(安装nodemodules)2024-12-07 13:18:05
  • nvm安装node(nvm安装node命令)2024-12-07 13:18:05
  • nvm安装node(nvm安装node失败)2024-12-07 13:18:05
  • nvm安装node版本(nvm 安装node)2024-12-07 13:18:05
  • 全屏图片