npm相关和私有云

将npm包发布在私有仓库(nexus)中操作步骤 有时候需要将自己写的一些前端项目(插件等)打包发布到公司内部的nexus仓库中供其他项目使用。 在nexus中新建一个 repository 打开nexus,登录以后,按照下图操作 选择 npm (hosted) 填写 repository 相关信息 1.这里的 Blob store最好选择为 npm 专属的 2.如果没有需要在Blob Stores新建 3.在Hosted选择:Allow redeploy 否则在后面上传的时候会报错 npm ERR! code E400 npm ERR! 40 阅读详情

npm(Node Package Manager)是 JavaScript 生态系统中的包管理工具,用于安装、管理和共享项目依赖。安装node时npm会自动安装,npm也可以单独安装。

package.json

在使用npm时,package.json文件是非常重要的,因为它包含了关于项目的必要信息,比如名称、版本、依赖项等。在初始化新项目时,通常会使用npm init命令生成一个空的package.json文件。 如果要运行npm命令,不一定非要有package.json文件存在。运行npm install或npm uninstall命令来安装或卸载依赖项。如果没有package.json文件,就需要明确指定要安装哪个版本的依赖项。如果有package.json文件,则npm将自动解析该文件中的依赖项并安装适当的版本。 另外,有些命令确实需要package.json文件才能正常工作。例如,npm run命令会读取package.json文件中的scripts字段来确定要执行哪些脚本。 总之,package.json文件在npm中扮演了很重要的角色,通常推荐在项目中始终使用package.json文件以保持一致性和组织性。

devDependencies用于指定项目在开发环境下所需的依赖包,这些依赖包通常不会在生产环境中使用,例如测试工具、构建工具等。这些依赖项只在开发环境中安装,不会在生产环境中安装。

dependencies则用于指定项目在生产环境中所需的依赖包,这些依赖包是项目正常运行所必需的,例如前端框架、后端框架等。这些依赖项会在开发环境和生产环境中都安装。

版本号

在npm(Node Package Manager)中,项目常常需要依赖许多外部组件,而这些组件通常都是开源的。使用开源组件时,需要注意其版本号,因为不同的版本号可能造成功能上的很大差别。

在npm中,版本号的规范通常是主版本号.次版本号.补丁版本号。其中,主版本号只有在程序发生重大变化时才会增加,例如新增重要功能、大量API或技术架构的重大变化;次版本号只有在程序发生一些较小的变化时才会增加;而补丁版本号则是在修复bug或者进行微小改进的时候才会增加。 此外,在指定依赖包版本号时,可以使用一些特殊的符号来表示不同级别的版本匹配规则。以下是常见的几个符号及其含义:

  • ^:表示“最近的小版本”,会匹配最新发布的次要版本和补丁版本,但不会改变主版本号。例如,^1.2.3会匹配所有版本号大于等于1.2.3且小于2.0.0的版本,例如1.2.4、1.3.5等。
  • ~:表示“最新的修补版本”,只匹配最新的补丁版本,但不会改变主版本号和次要版本号。例如,~1.2.3会匹配所有版本号大于等于1.2.3且小于1.3.0的版本,例如1.2.4、1.2.5等。
  • >:表示“大于某个版本”,会匹配所有版本号大于指定版本号的版本。例如,>1.2.3会匹配所有版本号大于1.2.3的版本,例如1.3.0、2.0.0等。
  • <:表示“小于某个版本”,会匹配所有版本号小于指定版本号的版本。例如,<1.2.3会匹配所有版本号小于1.2.3的版本,例如1.1.0、1.0.0等。 

注意:如果使用npm下载一个包但是下载失败了,如果你没有使用这些选项,`package.json` 文件不会有任何变化,如果你使用了 `--save` 或 `--save-dev` 选项,即使安装失败,`package.json` 文件中仍会包含相应的包名。PNPM在处理包安装失败时,旨在保持项目的状态一致性,不会在 `package.json` 文件中留下未安装成功的包名

安装包路径

npm 包的默认安装位置依赖于全局安装(-g)还是本地安装的情况。

全局安装(-g): 包将被安装在Node.js的全局目录下,通常是在你的操作系统中的某个路径下,如 /usr/local/lib 或 C:\Users\[用户名]\AppData\Roaming\npm。

本地安装:包将被安装在你当前项目的 node_modules 文件夹内。

npm config get prefix

这个命令可以查看npm的全局安装路径,这将返回npm的全局安装前缀。

npm root -g

这个命令可以命令查看实际的全局包安装目录。

npm root

这个命令可以命令查看实际的本地安装的包的目录。对于本地安装,包会被安装在你项目目录下的 node_modules 文件夹内。

如果你想改变全局安装的默认位置:

npm config set prefix xxx

XXX替换为自定义的路径,如:"D:\Program Files\nodejs\node_global"

如果你想改变本地安装的默认位置:

项目的 .npmrc 文件中设置 package-lock=false 并创建或修改 node_modules 文件夹的符号链接。

例如,如果你想将本地依赖安装在项目根目录下的 vendor 文件夹,你可以在项目根目录创建一个 .npmrc 文件,并添加以下内容:

prefix=vendor
package-lock=false

然后,你可以运行 npm install,这样包就会被安装到 vendor 文件夹中。

npm缓存

npm配置的缓存机制用于保存已下载的包,‌以便在以后的安装中重复使用,‌从而提高安装效率。‌默认情况下,‌npm缓存位于用户主目录下的.npm目录中。‌

npm config get cache

这个命令可以命令查看缓存目录。

npm config set cache xxx

这个命令,‌开发者可以指定一个自定义的缓存路径,‌将缓存存储在指定的目录中,比如:npm config set cache "D:\Program Files\nodejs\node_cache"。这个命令允许用户修改npm的缓存目录,‌以便更好地管理下载的包和优化磁盘空间的使用。‌

注意:确保指定的路径存在且具有读写权限。‌它不会移动已经存在的缓存数据。如果你想要移动已有的缓存数据,你需要手动操作。

npm cache clean --force

清除整个npm缓存目录,‌包括所有已下载的包。‌这在进行大规模清理或解决特定问题时非常有用

npm常用命令

npm install xxx 或 i

npm i xxx不是全局安装,而是局部安装,他默认添加了参数 --save-dev。局部安装将包安装在当前项目的node_modules目录下,只在该项目内部生效,不会影响其他项目。这些模块将被添加到项目的 devDependencies 中,以便在生产和开发环境中使用。这样可以使每个项目各自独立地管理自己的依赖项,避免全局命名空间的冲突。

npm i xxx -g全局安装,这意味着可以在任何项目中直接使用该模块,而无需再次安装。它不会将模块添加到当前项目的 dependencies 或 devDependencies 中,也不会在项目的 node_modules 文件夹中保存该模块。

npm i xxx --save-dev安装的插件,会被写入到devDependencies对象里面去

npm i xxx --save安装的插件,会被写入到dependencies对象里面去

f5164780754840c78a204235ba2b0be5.png

npm uninstall xxx 或 rm

卸载指定的模块

npm list 或 ls

列出当前项目的依赖列表

npm outdated

检查哪些依赖已经过时

npm run-script 或 run

执行 package.json 中定义的脚本

npm run 经历了那些步骤

npm run 命令实际上是在创建一个新的 Shell,并且在这个 Shell 中执行指定的脚本。这个 Shell 还会将当前项目的可执行依赖目录(通常是 node_modules/.bin)添加到环境变量 PATH 中,这样你就可以在脚本中直接使用项目中安装的任何本地可执行文件而无需指定完整的路径。

1.解析命令:
当你在终端中输入 `npm run xxx` 时,npm(Node Package Manager)首先会解析这个命令。

2.查找 package.json 文件:
npm 然后会在当前目录下查找名为 `package.json` 的文件。这个文件通常包含了项目的元数据、依赖项和脚本定义等信息。

3.找到 scripts 对象:
在打开的 `package.json` 文件中,npm 查找 "scripts" 对象。这个对象包含了以键值对形式定义的各种脚本命令。

4.匹配指定的脚本:
根据你提供的 `xxx` 参数,npm 查找在 "scripts" 对象中与之对应的键。例如,如果你运行的是 `npm run build`,它将查找 "build" 键。

5.执行脚本:
找到相应的脚本定义后,npm 使用操作系统默认的 shell(如 Bash 或 PowerShell)来执行指定的命令。如果脚本定义是一个简单的命令,比如 `"build": "webpack"`,那么它就会直接执行 `webpack` 命令。
6.设置环境变量:
在执行脚本之前,npm 还会为脚本命令设置一些环境变量。这些环境变量包括但不限于 `NODE_ENV`,它可以用来指示当前的运行环境(例如开发或生产),以及其他可能由特定脚本或插件使用的自定义环境变量。

7.显示输出:
脚本执行过程中产生的任何标准输出(stdout)和错误输出(stderr)都会被显示在终端上。

8.处理退出状态码:
脚本执行完成后,npm 会检查其退出状态码。如果状态码是非零值,这通常表示出现了错误。在这种情况下,npm 将报告一个错误并终止操作。

npm scripts 使用指南 - 阮一峰的网络日志 (ruanyifeng.com)

npm可以连接私有云

可以通过配置npm注册表来连接私有云,以便让npm可以从私有云中获取包。以下是使用npm连接私有云的基本步骤: 

1. 在npm注册表中创建一个帐户并登录。这个注册表可以是您自己的私人注册表,也可以是第三方服务提供商的注册表。
2. 设置npm的registry URL指向您的私有云地址。您可以通过使用npm命令行工具或修改npm配置文件(默认为`.npmrc`)来完成这个操作。例如:
npm config set registry https://your-private-cloud-url.com/
3. 在项目中引用私有云中的包。在 package.json 文件中列出所需的私有包,如下所示:
{
  "dependencies": {
    "my-private-package": "https://your-private-cloud-url.com/package/my-private-package#version"
  }
}
4. 运行`npm install`命令来安装所需的私有包。

需要注意的是,私有云可能需要特定的认证机制,如用户名和密码、OAuth2、JWT等。

参看文章

https://www.cnblogs.com/chaoyueqi/p/11232844.html

npm run 命令解析与node_modules .bin下的文件解析 - 舟舟舟 - 博客园 (cnblogs.com)

包管理工具是用npm,还是yarn?我选pnpm - 知乎

package.json 与 package-lock.json 的关系 - 掘金 (juejin.cn)

私有云项目管理软件选型指南:7款自托管工具深度对比 私有云项目管理不是传统任务跟踪,而是融合代码、配置、基础设施与安全策略的声明式协作系统。其核心在于实现需求-代码-部署-审计的全链路可追溯,支撑Kubernetes、Terraform、CI/CD等现代技术栈的协同治理。关键技术价值体现在降低协作熵值、强化IaC变更追踪、满足等保与ISO27001审计要求,并打通开发、运维、安全、测试多角色工作流。典型应用场景包括K8s集群升级管控、灰度发布状态同步、OPA策略前置校验及一键合规报告生成。本文聚焦GitLab Self-Managed、Azure DevOp 阅读详情

相关推荐

监控运维那点事-起步1

监控运维工作复杂,期望通过“监控运维那点事”专题,通过流程、工具、人三方面来分享我在IT运维监控方面心得

qq_28124419的博客 4165

npm和package.json安装私有的指定路径的依赖包

npm和package.json安装私有的指定路径的依赖包

我叫火柴 3715

Qwen Code本地调用全流程:Node.js环境搭建与SDK精简集成

Qwen Code作为阿里推出的代码生成大模型服务,其本地调用并非简单安装Node.js,而是涉及运行时环境配置、API认证机制与调用链路设计的技术闭环。核心原理在于依托Node.js构建轻量HTTP客户端,通过标准签名协议(SHA256+UTC时间戳+X-Qwen-Signature)对接云API,实现安全可控的代码补全与函数生成。该方案兼顾开发效率与生产稳定性,技术价值体现在规避PowerShell执行策略冲突、消除npm全局权限风险、降低SDK依赖体积,并天然支持配额管控与错误可观测性。典型应用场景包

weixin_34319817的博客 414

npm安装私有指定路径的依赖包

npm安装私有指定路径的依赖包

lfl_web_foreEnd的博客 1756

innovus中path group 的策略和应用(上)

在所有的后端工具里边,有三个重要的引擎:auto-place,CTS,auto-route三个。这里边的auto-place是决断了整个设计时序的基点。。当然,就算是到了CTS/route阶段后,也可以继续利用auto-place数据优化的功能,在数据库上做数据路径增量优化(optDesign -increment)。可以说,数据路径的优化手段,实际上是贯穿在整个后端流程上的。。看看这其中的奥妙和有趣的事情。ICer GO!

i_chip_backend的博客 4215

飞常准小程序接口逆向分析:如何破解航班查询的签名机制

本文深度解析了飞常准小程序航班查询接口的安全机制,重点剖析了其基于MD5和参数排序的签名算法。通过逆向分析核心代码,详细阐述了签名生成流程,并提供了Python实现的签名生成器与调试技巧,为开发者理解与模拟此类接口调用提供了实战指南。

zz67890的博客 531

前端项目指定npm源——.npmrc

当我们的前端项目npm仓库有多个源,想在某个单独的项目中使用特定的npm源,则可以通过.npmrc文件来进行配置 1.在项目根目录下创建.npmrc文件 2.编辑文件,输入registry="目标源地址" registry="https://registry.npmjs.org/" 3.通过命令npm config ls查看当前项目下的registry是否发生了变化 配置完成后,npm源地址只在此项目中生效,并不会对全局npm的配置影响,可以在别的终端上通过命令npm config ls进行验证 ...

戴戴的博客 1万+

Cass三角网法土方计算优化技巧:如何根据地形特点调整边界采样间距

本文深入探讨了Cass软件中三角网法(DTM法)土方计算的优化技巧,核心在于如何根据地形的复杂程度动态调整边界采样间距。针对平坦、复杂及人工构造物等不同地形特征,提供了具体的间距调整策略与精度验证方法,旨在帮助工程师在计算精度与效率间找到最佳平衡,实现精细化土方计算。

weixin_29294975的博客 523

如何部署npm私有仓库以及在项目中如何使用

使用 Verdaccio 可以很轻松容易的搭建一个私有的 npm 仓库,可以为团队或个人提供一个方便管理和分享 npm 包的平台,部署和使用都非常简单,大家快用起来吧!

qq_37155408的博客 4423

用化学方法nmp溶剂从佳能cmos传感器上剥离拜耳矩阵和微透镜

将光刻胶暴露于 NMP 溶剂中 10-15 分钟,并进行轻微的机械搅拌,将溶解的光刻胶从基材表面带走,即可去除大部分光刻胶,之后再进行第二次溶剂浴,以洗去微量含有光刻胶的溶剂。我还担心传感器的校准问题,我觉得可以大致解决这个问题,比如在安装面上用刻度尺标记三个螺丝的位置,然后数着拧出螺丝的圈数,直到听到“咔哒”声(螺纹完全拧出)。我还担心传感器的校准问题,我觉得可以大致解决这个问题,比如在安装面上用刻度尺标记三个螺丝的位置,然后数着拧出螺丝的圈数,直到听到“咔哒”声(螺纹完全拧出)。在我看来,这是必读的;

qq_40247880的博客 1473

PyTorch实战(21)——扩散模型(Diffusion Model)

扩散模型通过简单的噪声扩散过程,就能创造出高质量的超现实图像。在本节中,我们首先学习了扩散如何用于图像生成,了解了扩散模型的内部运作机制。随后基于动漫图像数据集,使用 PyTorch 和 Hugging Face 框架训练和运行自定义扩散模型,生成逼真动漫图像。

盼小辉丶的博客 3344

私有云如何获取Web SDK并进行初始化链接配置?

2、如果用户需要使用 npm 下载(需要注意后面带上标识符 ' enterprise ',和版本号),建议在 npm 官网中搜索 @rongcloud 找到 @rongcloud/imlib-v2 的历史版本,选择执行其中某个带 enterprise 的版本即可,比如:npm install @rongcloud/imlib-v2@2.9.0-enterprise.5。1、私有云用户需要与商务对接获取 Portal 地址,以及登入账号和密码,可以在 Portal 地址获取 SDK 静态资源。

融云即时通讯 184

Parasoft C++Test软件单元测试_操作指南

本文主要为使用C++TEST进行单元测试的流程性操作讲解,后续文章将以专题形式进行详细讲解,以及用一些被测函数作为示例进行实例讲解。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1573

洛雪音乐同步服务:打造私有云音乐库的终极解决方案

在当今数字音乐时代,多设备间的音乐数据同步成为音乐爱好者的核心需求。洛雪音乐同步服务作为一个开源的Node.js音乐同步工具,为技术爱好者和中级用户提供了完整的私有云音乐解决方案。这个项目让你能够轻松搭建个人音乐云服务,实现跨设备的音乐收藏、播放列表和偏好设置的完美同步。 ## 项目价值定位:为什么你需要私有音乐同步服务? 随着流媒体服务的普及,用户对音乐数据的控制权逐渐减弱。洛雪音乐同步服务

gitblog_00859的博客 773

《UDS协议从入门到精通》系列——到底什么是DTC?

到底什么是DTC?看这里,深度图解DTC格式,详述DTC状态位、快照信息和扩展信息!!

车载系统攻城狮 1万+

(十一)随机性与独立性回顾

随机性与独立性回顾

旺旺的碎冰冰~的博客 1017

利用Docker与Nextcloud将旧电脑改造为私有云网盘

文件服务器是网络存储的核心概念,它允许在局域网或互联网上集中管理和访问文件。其原理是通过特定的服务器软件将一台计算机转变为数据存储与共享中心。这项技术的核心价值在于实现数据自主权,避免依赖第三方云服务,从而保障隐私安全并节省长期订阅成本。在应用场景上,它非常适合用于家庭媒体中心、个人文档同步或小型团队协作。Docker容器化技术通过封装应用及其依赖,极大地简化了部署流程,而Nextcloud作为开源的自托管云平台,提供了媲美主流网盘的丰富功能。本教程正是基于Docker和Nextcloud这两个关键技术,指

weixin_33946605的博客 447

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

基于阿里云OSS与STS安全令牌搭建私有云盘实战指南

对象存储服务(OSS)作为一种高可用、高扩展、低成本的云存储解决方案,其核心原理是将数据作为对象进行管理,通过RESTful API进行访问。这项技术为海量非结构化数据存储提供了理想的架构,其技术价值在于实现了存储资源的弹性伸缩与按需付费,有效降低了自建存储服务器的硬件与运维成本。在应用场景上,OSS广泛服务于网站托管、备份归档、大数据分析及内容分发等领域。本文聚焦于个人私有云盘的构建,通过整合阿里云OSS的存储能力与安全令牌服务(STS)的临时访问凭证机制,详细阐述了如何实现一个安全、高速且完全自主控制的

weixin_30904593的博客 462

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

GitHub 宣布正式收购 npm | 云原生生态周报 Vol. 42

作者 | 丁海洋、张晓宇、汪萌海 业界要闻 1. GitHub 宣布正式收购 npm npm 自十年前发布以来,经过发展目前已经是最流行的 javascript 包管理工具。 收购以后,Github 承诺会对 npm 的安全性、注册表基础架构提供增强;在商业上,Github 承诺 npm 将永远保持免费,已经购买了 npm Pro、Teams、Enterprise 的客户仍然会得到继续...

阿里巴巴云原生的博客 305

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

高度安全环境下的Docker和Kubernetes

这是笔者研究生论文的部分内容和基于此得出的结论的一个简要总结。本文侧重于探讨容器化应用程序的隔离问题。论文里还介绍了Kubernetes集群网络的部分,这里不做讨论。你可...

Docker的专栏 450

架构革命:LX Music Desktop如何用现代Web技术重塑桌面音乐体验

在数字音乐消费日益碎片化的今天,用户面临着一个尴尬的困境:主流音乐平台功能臃肿、广告繁多,而传统桌面播放器又难以满足跨平台、多源聚合的需求。正是在这种背景下,一个基于Electron和Vue 3构建的开源音乐播放器——LX Music Desktop悄然崛起,它通过创新的架构设计和开发者友好的扩展机制,为技术爱好者和普通用户提供了一个全新的解决方案。 ## 从痛点出发:当传统播放器遇上现代需求

gitblog_00981的博客 984

从零部署FileBrowser:打造私有云盘与Web文件管理器的完整指南

文件管理是IT基础设施中的基础需求,涉及数据的存储、访问与共享。其核心原理是通过网络协议和Web服务,将远程文件系统映射为可通过浏览器操作的界面。这一技术对于实现跨设备同步、团队协作和私有云存储具有重要价值,尤其适用于个人开发者、小型团队以及拥有NAS或闲置服务器的用户。通过部署轻量级的Web文件管理器,可以在不依赖第三方服务的前提下,安全高效地管理文件。本文将围绕FileBrowser这一现代化工具,结合Docker部署和Nginx反向代理等热词,详细解析从环境准备、多种部署方案到安全加固与性能优化的全流

weixin_30945039的博客 405

半小时搭建基于Docker的cnpm私服

(一)前言 由于业务的需要,公司给我安排了一个技术研究的任务,需要搭建公司自己的NPM私有服务器。接到任务后,赶紧上网查询相关资料,网上资料很多,但是没有一个完整性的介绍文章。依据网上相关的资料,结合自己的摸索,终于搭建成功私有仓库。当然过程中也踩了不少坑,把搭建过程和踩坑经历记录下来,避免想搭建私服的朋友们踩坑,走弯路。 (二)为什么建立私服 1、有些公司出于隐私数据保护的目的,不想将开发的代码包发布到npm外网服务器,但又急需要一套完整的包管理工具来管理越来越多的组件,模块,项目...

莫等闲的专栏 932

终极指南:如何在3分钟内免费搭建你的专属跨平台音乐播放器

还在为音乐会员费烦恼吗?厌倦了各大平台复杂的界面和广告?今天我要介绍一个完全免费、开源、无广告的跨平台音乐播放器——LX Music桌面版。这款基于Electron和Vue.js开发的软件让你可以轻松搜索和播放全网音乐,支持Windows、macOS和Linux三大操作系统,真正实现"一次搭建,随处播放"的完美体验。 ## 为什么选择LX Music桌面版? 在开始之前,让我们先了解这款软件的

gitblog_00286的博客 1078

Puter 快速上手指南:从本地开发到 Docker 自托管完整部署

Puter 是 Puter Technologies 开源并支持自托管的"互联网操作系统",本指南以仓库中的多语言文档 [doc/i18n/README.ua.md](https://link.gitcode.com/i/92921f9ea5f6f4111edab30f9628bbd8)(乌克兰语版主 README)为主体,完整梳理其快速开始、单容器 Docker、Docker Compose 全

gitblog_00989的博客 988
上一篇: 客户端缓存技术
下一篇: 不同content-type对应的前端请求参数处理格式
jsPao
博客等级 码龄7年 549粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值