npm用法及离线安装方法

2023-10-27

npm用法及离线安装方法

基本的用法

查看某个模块的全部信息,或者可以查看单个信息

npm info name
npm info name version
npm info name homepage

install支持多种手段,包名,git路径,包括本地路径也可以

 

sudo npm install -global [package name]
npm install git://github.com/package/path.git
npm install git://github.com/package/path.git#0.1.0
npm install package_name@version
npm install path/to/somedir  //本地路径

 

前提是本地路径里面包含一个完整的包,或者文件里面有合格的package.json文件即可

 

查看装好了哪些包

npm list
npm -global list

 

配置文件基本用法

配置就是修改npmrc文件了。用命令行同样也是修改此文件。
npmrc存在三个位置,修改用户目录下的文件就更合适了。
~/.npmrc             (用户主目录,win系统在C:\Users\$用户名\.npmrc)
 

修改文件就不用说了,命令配置方法

npm config set key=value
npm config set proxy=http://127.0.0.1:8087

具体的用法和具体key value可以通过打开说明文档查看

npm help npm

配置项可以通过以下命令查看已经配置过的项

npm config list
npm config list -l

配置代理,全局目录,源

下面正式介绍对付国内网络的方法了

首先几个重要的配置项一一介绍

prefix   -- 全局安装的路径,也就是npm install -g 安装的模块在哪个位置。这个看个人喜好。我喜好将他设置到安装路径下面。

proxy -- 代理(http的代理是用这个),代理连外网的朋友这个就需要配置了。

https_proxy -- https代理

registry -- 类似linux的软件源,这个一定要修改的

npm config set prefix "c:\nodejs"
npm config set proxy=http://127.0.0.1:8087
npm config set https_proxy=http://127.0.0.1:8087
npm config set registry=http://registry.npmjs.org

registry=http://registry.npmjs.org 这句很重要,注意默认的源是https://registry.npmjs.org 是https的,反正我连默认的源是从来没成功过一次。
上例我把他修正为不加密http的就基本能正常了。

网络不行可以考虑一些国内的源试试,例如

npm config set registry "http://r.cnpmjs.org/"

离线安装

有许多环境下即便配置了代理,修改了源还是出现网络问题。常见的提示是shasum check failed。当然这不一定就是网络不行,但大部分情况下是网络连接不通畅导致的。

这种情况下可以手工下载并安装,其实也很简单。

首先找到想办法把你需要的包下载下来,这个可以多种办法了。或者从其他机器拷过来。

例如先npm info mysql 查看mysql这个包的信息,包信息里面会有软件主页或者代码仓库地址。一半在github上。(install因为要下载可能会失败,但是info指令信息少通常可以成功)。

例如node-mysql的地址在https://github.com/felixge/node-mysql

下载来之后解压到工程的node_modules目录下就是安装好了,就这么简单。

Project

  ---package.json

  ---index.js

  ---node_modules      // 解压到此目录就行了(每个包文件夹下面有package.json,index.js文件的。)

注意:你下载下来的源码包可能和模块名字不一样。要将改名成模块名再拷贝进node_modules 中去。例如将node-mysql文件夹改名成mysql。

 

包之间的依赖关系离线安装问题

上面方法安装的包不会包含依赖的包,不过依赖包同样用上面离线一个个安装的办法也可以。

例如mysql包就依赖bignumber.js , readable-stream , require-all 三个包。npm默认情况下安装的依赖包会是一层一层往下的。例如安装好mysql工程结构会是这样的

Project

  ---package.json

  ---index.js

  ---node_modules

      ---mysql

          ---node_modules

              ---bignumber.js

              ---readable-stream

              ---require-all

 

你同样只需要相同的操作将依赖的包放到相应的位置便可。这样包管理的结构虽然复杂但是依赖关系很清晰。但是这个规定不一定非要这样,你也可以将依赖包放到第一层的node_modules文件夹下。nodejs搜索模块路径会一层一层往上搜索。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/laozhbook/p/npm_help.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

npm用法及离线安装方法 的相关文章

  • 将 RequestBody json 转换为对象 - Spring Boot

    我是 java 开发的初学者 但之前有 PHP 和 Python 等编程语言的经验 对于如何进行 Spring Boot 的开发几乎没有什么困惑 我正在开发一个rest API 它有以下请求 key value key1 value1 pl
  • 清理 MongoDB 的输入

    我正在为 MongoDB 数据库程序编写 REST 接口 并尝试实现搜索功能 我想公开整个 MongoDB 接口 我确实有两个问题 但它们是相关的 所以我将它们放在一篇文章中 使用 Python json 模块解码不受信任的 JSON 是否
  • git log --oneline 提供在管道或重定向到文件时丢失的 HEAD 信息

    当我执行没有管道或文件重定向的 git log oneline 命令时 它会提供有关 HEAD 位置和分支的信息 下面示例中的 master git log oneline color never 8bc8511 HEAD gt day 2
  • 设置单独的遥控器以仅推送和拉动子文件夹

    假设我有两个存储库 repo A and repo B 其中包含一个文件夹 其中的代码与存储库 A 中的代码类似 这实际上如何发生并不重要 但是好吧 让我们假设我刚刚从 A 复制了内容 现在我想要以下内容 就像我在 repo A 中习惯的那
  • 使用 Jackson 删除 JSON 元素

    我有一个特定的 JSON 节点 对应于 import org codehaus jackson JsonNode 而不是 导入 org codehaus jackson map JsonNode givenName Jim formatte
  • 如何显示多维数组第二层的 json 值?

    解决此代码时遇到问题 这些是数组 Array 0 gt stdClass Object id gt 1 name gt delux price gt 213 description gt tv gt 0 breakfast gt 0 par
  • Python-如何删除 json 字符串中最后的逗号(,)

    嗨 我刚刚开始尝试 python tornado 和 mongodb 我是新手 我编写了一个简单的 get 函数来从 mongodb 获取所有值并以 JSON 格式返回 问题是 当我尝试将输出写入 JSON 字符串时 我在集合中的最后一条记
  • Git 和重定向

    我注意到 当 git html 项目页面如下所示 https github com fruux sabre dav 被克隆 以这种方式 git clone https github com fruux sabre dav 实际生成的远程 U
  • git reword 在变基期间显示合并冲突,但是 pick 工作正常

    我正在尝试用很少提交的另一个分支来重新建立一个分支 虽然提交包括合并提交 但我可以使用以下命令成功地对其进行变基git rebase i r m
  • PHP:file_get_contents 与 json_decode 不能一起工作

    使用 file get contents 读取 json 文件后遇到问题 当我运行这段代码时 它工作正常
  • 代码点火器 JSON

    你好 我使用 codeigniter 然后我从控制器中的数据库中回显输出 然后在我的视图文件中执行以下操作 但它没有显示任何内容 S 我的模型文件 function forumList this gt db gt select oversk
  • 我应该如何将更改从一个提交转移到另一个提交?

    我在同一个分支上有两个提交 一个接一个 我在第一次提交中添加了对文件 A 的更改 然后对其他文件进行了一些更改 然后进行了另一次提交 现在我希望对文件 A 的更改是在第二次提交而不是第一次提交 最优雅的方式是什么 我知道这是一个老问题 但我
  • 在防火墙后面使用 GitHub,无需 SSH 访问

    我真的很想使用 GitHub 但我的公司一切都被锁定了 现在 我只能通过HTTP协议使用Tortoise SVN 我可以以同样的方式使用 GitHub 吗 如果是这样 怎么办 我认为你一直能够克隆github https github co
  • Rspec 控制器测试,传递 JSON 参数

    我试图实现以下目标 在 RSpec 控制器测试中创建 POST json 请求 并向其传递参数 这是我的代码 it returns access token do post login email bla password bla1 for
  • 如何更新我的裸存储库?

    我创建了一个裸存储库来发布我的存储库 但我不知道如何使用主存储库的当前状态更新裸存储库 如果您想复制主存储库中的所有对象 请在主存储库中执行此操作 git push all
  • 未找到 Gradle DSL 方法:“versionCode()”

    构建我的 Android 项目时遇到问题 我使用Grgit https github com ajoberstar grgit填写versionCode and versionName在 gradle 中 一切工作正常 直到我将 Andro
  • 如何按单个整数字段对 JSON 进行排序? [复制]

    这个问题在这里已经有答案了 我有以下 JSON title title order 0 order 9 order 2 JSON 包含很多字段 我如何根据字段对它们进行排序order field 我一直在寻找 Nodejs 中内置的东西 但
  • 如何强制控制器/操作使用 JsonValueProvider

    再会 我正在使用 ASP NET MVC 3 其中JsonValueProvider http haacked com archive 2010 04 15 sending json to an asp net mvc action met
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • 在 emacs 的文件中不断出现的这些 ^M 是什么?

    我认为这可能与 TextMate 有关 但我们在一个小团队中工作 并且在 git 中几乎相同的文件的全文件冲突方面遇到了一些问题 在一个分支中 文件的每一行都附加了 M 这是什么神秘的事 M角色应该做什么 它从哪里来 我们的开发人员在 Wi

随机推荐

  • 前端編譯 : Babel 基礎入門

    前端編譯 Babel 基礎入門 前言 正文 什麼是 Babel Babel 模塊介紹 babel cli 從項目中運行 Babel CLI babel register babel node babel core 配置 Babel babe
  • OpenCV 人脸检测(HAAR/DNN)

    1 HAAR级联检测 include
  • 深入理解ThreadLocal源码

    1 预备知识 强软弱虚引用 在Java中有四种引用的类型 强引用 软引用 弱引用 虚引用 设计这四种引用的目的是可以用程序员通过代码的方式来决定对象的生命周期 方便GC 强引用 强引用是程序代码中最广泛使用的引用 如下 Object o n
  • NoSQL数据库详细介绍

    一 NoSQL发展历史 二 什么是NoSQL 三 为什么使用NoSQL 四 NoSQL vs RDBMS 五 常见的数据库 六 NoSQL的四种类型 1 键值 Key Value 存储 2 文档 Document Oriented 存储 3
  • C语言学生信息管理程序

    程序要求如下 实验源码 要求实现学生信息的查找 添加 删除 修改 浏览 保存 从文件读取7 个功能 每个功能模块均能实现随时从模块中退出 而且可以选择不同的方式实 现所需功能 从而完成一个学生管理系统所需功能 2 要使用结构体来实现对学生信
  • pytorch学习笔记——timm库

    当使用ChatGPT帮我们工作的时候 确实很大一部分人就会失业 当然也有很大一部分人收益其中 我今天继续使用其帮我了解新的内容 也就是timm库 毫不夸张的说 Chat GPT比百分之80的博客讲的更清楚更好 仅次于源码 当提到计算机视觉的
  • centos8使用grubby修改内核启动参数

    grubby是一个用于更新和显示有关各种体系结构特定的引导程序的配置文件信息的命令行工具 它主要设计用于安装新内核并需要查找有关当前引导环境的信息的脚本 同时也可以对启动内核的各项信息参数进行修改 本文主要介绍如何在centos8中使用gr
  • 前端接入sentry可能会遇到的坑

    前端接入sentry可能会遇到的坑 多个项目下 sourcemap 会混乱 解决 在配置版本的时候除了填写版本号 最好在版本号添加该项目名称前缀 sourcemap 源码定位不了 解决 1 仔细查看对应的路径是否正确 2 nginx 是否设
  • 关于 Linux 看这篇就够了

    流量如水 文章就是一个瓶子 标题是瓶口 内容是瓶身 瓶子装水有多快依赖瓶口大小 瓶子装水有多少依赖瓶身大小 关于 Linux 看这篇就够了 操作系统概述 Linux 操作系统安装 Linux 文件系统 Linux 命令操作 Linux 权限
  • Just demo test

    MainWindow MainWindow QWidget parent QMainWindow parent ui new Ui MainWindow ui gt setupUi this for int i 0 i lt 3 i QLa
  • Collections中的双向队列-deque

    双端队列 可以快速的从另外一侧追加和推出对象 deque是一个双向链表 针对list连续的数据结构插入和删除进行优化 它提供了两端都可以操作的序列 这表示在序列的前后你都可以执行添加或删除操作 双向队列 deque 对象支持以下方法 1 a
  • easyExcel 用XSSF画斜线

    注册拦截器 WriteSheet writeSheet EasyExcel writerSheet 0 sheet1 registerWriteHandler new CustomCellWriteHandler head header b
  • CF1604 C. Di-visible Confusion(lcm)

    include
  • 《Data Cleansing for Models Trained with SGD》笔记

    1 在其 appendix B 中证 Lemma 7 时说由于 1 s
  • AD18设置默认线宽

    点击设计 gt 规则 选择Routing gt Width 在这里设置
  • 图像格式互转

    一 灰度图转YUV 由于工作需要 经常接触12bit灰度数据 因此在这里将数据的处理记录下来 经常接触的是sensor输出的12bit灰度数据 按照需求经常会将这份数据转换成其他格式 如16bit灰度数据 高4bit为0 YUV数据等 其中
  • asio(十一)、udp异步服务器

    官网教程 https think async com Asio asio 1 26 0 doc asio tutorial tutdaytime6 html udp异步服务器 int main try 创建一个服务器对象来接受传入的客户端请
  • MaxCompute实例相关操作

    通过MaxCompute提交的SQL Spark和MapReduce等作业会实例化 以MaxCompute实例 Instance 的形式存在 MaxCompute实例有对应的实例ID 实例ID永久有效 且全局唯一 查看实例信息 查看实例信息
  • 检查蓝牙是否连接

    检查蓝牙是否连接 private BroadcastReceiver mBlueToothReceiver new BroadcastReceiver Override public void onReceive Context conte
  • npm用法及离线安装方法

    npm用法及离线安装方法 基本的用法 查看某个模块的全部信息 或者可以查看单个信息 npm info name npm info name version npm info name homepage install支持多种手段 包名 gi