关于npm命令

我们知道nodejs安装后,用npm命令来安装管理依赖包,npm默认源是https://registry.npmjs.org 国内访问可能不够快,所以大家一般会配置使用国内镜像源,比如https://registry.npmmirror.com ,这样可能访问和下载会快一些。
有些单位的对开发测试生产环境的外网访问会做不同的限制,比如开发测试可以访问外网,生产不能访问外网,那么它上面的nodejs程序的依赖包就没有办法直接从外网直接下载了。
开发平台比较完善的单位可能会在网内部署npm的私有仓库,并要求npm源指向内网私仓,这样可以解决限制访问外网npm源的问题。
如果内网没有建私仓,网络上也不能访问外网源,那么怎么办呢?这个比较困难了,不能使用npm install在线安装依赖包了,但是可以离线复制到目标使用,具体就是在别的机器上下载所需要依赖包,并把node_modules下这些依赖包的文件夹选择复制到目标机器上项目的node_modules文件夹下,我比较倾向于为每个项目使用本项目的node_modules文件夹,而不是用全局的node_modules,以消除彼此影响,而且还能很清楚了解该项目的所有依赖包情况。
重点来了,虽然仅把依赖包复制到node_modules文件夹下,项目就可以正常运行了,但是最好把弄好的package.json文件也一并放在项目目录中,否则的话,万一不小心手贱在服务器上执行了npm命令,比如npm uninstall,即使访问不到外网,但是删依赖包是可以正常执行的,如果没有package.json文件的话,node_modules下整个文件下的内容都会被咔嚓,是不是坏事了。因为npm执行安装和卸载会检查和修改package.json文件的。所以为确保node_modules下依赖包的安全,应该在项目目录里存在正确内容的package.json文件。package-lock.json文件也一样,最好都在,从在线安装这些依赖包的机器上一起复制到目标机器上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/831011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RTMP 直播推流 Demo(二)—— 音频推流与视频推流

音视频编解码系列目录: Android 音视频基础知识 Android 音视频播放器 Demo(一)—— 视频解码与渲染 Android 音视频播放器 Demo(二)—— 音频解码与音视频同步 RTMP 直播推流 Demo(一)—— 项目…

vue计算属性是什么 怎么选择?

写在computed对象中的属性,本质上是一个方法,不过使用时依旧当属性来使用 虽然模板语法使用非常便利,但是它是被设计成用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护 无论计算属性还是methos,这两种实现方式的…

抽象类和接口的区别你知道吗

抽象类和接口是Java中两种重要的机制,它们都用于实现多态性和代码的灵活性,但在某些方面有着不同的特点。下面我将详细介绍抽象类和接口的区别,并通过示例进行说明。 抽象类(Abstract Class) 定义: 抽象类…

暴雨服务器引领信创算力新潮流

去年大模型的空前发展,人工智能也终于迎来了属于自己的“文艺复兴”,众多的模型相继发布,继而催生了整个行业对于智能算力需求的激增。 市场需求与技术驱动仿佛现实世界的左右脚,催动着世界文明的齿轮向前滚动。在全球经济角逐日…

力扣:61. 旋转链表(Java,双指针)

目录 题目描述:输入:输出:代码描述: 题目描述: 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 输入: head [1,2,3,4,5], k 2 输出: [4,5,1,…

Win系统常用操作

文章目录 1、常用快捷键 1、常用快捷键 锁屏:WinL截屏:WInShiftS新建文件夹:CtrlShiftN关闭程序:CtrlW放大/缩小页面:Ctrl加号/减号最小化当前窗口:Alt空格N返回桌面:WinD(再次按Wi…

linux高性能服务器--定长内存池设计

内存池 内存池是指程序预先从操作系统申请一块足够大内存,此后当程序中需要再次申请内存的时候,直接从内存池中获取;当程序释放内存的时候,是返回给内存池保管。 开源内存池: tcmalloc 功能: 避免频繁分…

扒开kafka内部组件,咱瞅一瞅都有啥?

Apache Kafka 是一个分布式流处理平台,主要用于构建实时数据管道和流式应用程序。它由几个核心组件组成,这些组件共同工作以提供高吞吐量、持久性、容错性和可扩展性。关于 Kafka 与其它类似的中间件的对比,这里V 哥就不再阐述了,…

leetcode-滑动窗口的最大值-95

题目要求 思路 1.这个题是可以暴力求解的,但是时间复杂度比较高,因此,这里说一个时间复杂度为O(n)的方法 2.因为这个代码是优化后的结果,第一次写如果直接写成这样着实不容易,因此,我直接讲每一行的含义。…

Linux系统应用与设置(1):比较、生成补丁以及应用补丁(diff与patch指令)

1. 简述 在我们应用Linux系统或基于Linux系统做一些软件应用开发时,经常会遇到需要将文件的改动记录下来,并且讲这些改动和差异应用到其他的Linux系统时,我们会用到diff和patch指令。 在Linux中,diff和patch是两个非常有用的命令行…

【网络基础】深入理解TCP协议:协议段、可靠性、各种机制

文章目录 1. TCP协议段格式1.1. 如何解包 / 向上交付1.1.1. 交付1.1.2. 解包 1.2. 如何理解可靠性1.2.1. 确认应答机制(ACK)1.2.2. 序号 与 确认序号 2. TCP做到全双工的原因2.1. 16位窗口大小2.2. 6个标记位 3. 如何理解连接3.1 连接管理机制3.1.1. 三次…

44. UE5 RPG 初始化敌人的属性

在正常的游戏中,我们应该考虑如何去初始化角色属性,并且要给角色分好类型。比如,在我们游戏中,我们如何去初始化小兵的属性,并且还要实现小兵随着等级的增长而增加属性。而且就是小兵也有类型的区分,比如我…

【数组】Leetcode 26. 删除有序数组中的重复项【简单】

删除有序数组中的重复项 其他算法导航栏 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 …

【C++STL】String类的常用函数用法总结

String类 一:String类的初始化方式二:String类的访问方式三:String的大小和容量四:string的插入:push_back() 和 insert()五:string拼接字符串:append() & 操作符六: string的删…

PhpAdmin-getshell

PhpAdmin-getshell 通过未授权成功写入,然后getshell 路径:C:\phpstudy_pro\Extensions\MySQL5.7.26\ 写入木马: into写入文件: 使用需看要secure_file_priv的值。 当value为“null”时,不允许读取任意文件 当value为…

Android 文件传输

经常写adb命令传文件,结果发现Android studio有自带的文件管理器,可以上传下载文件。

高扬程消防水泵在火灾中的关键作用/恒峰智慧科技

在火灾这一无情的灾难面前,每一秒都至关重要。而在这一分一秒的较量中,高扬程消防水泵无疑扮演着举足轻重的角色。它不仅是灭火战斗的得力助手,更是保障人民生命财产安全的守护神。 高扬程消防水泵,顾名思义,其扬程远超…

Gson打印按照想要的key顺序

默认大家都知道这个吧? val gson GsonBuilder().setPrettyPrinting().create() log(gson.toJson(bean))它是用于将对象bean,转成json以后,能够比较漂亮的打印出json的结构。我常用的是如下4个函数。 //就是jsonStr,使用该函数来…

qt对话框功能介绍

1、颜色对话框 //方式一QColor color QColorDialog::getColor(Qt::red, this, QString::fromLocal8Bit("颜色对话框"),QColorDialog::ShowAlphaChannel);qDebug() <<"color:" <<color;//方式二QColorDialog dialog(Qt::red, this); // 创建对…

通过自然语言处理执行特定任务的AI Agents;大模型控制NPC执行一系列的动作;个人化的电子邮件助手Panza

✨ 1: OpenAgents 通过自然语言处理执行特定任务的AI代理 OpenAgents是一个开放平台&#xff0c;旨在使语言代理&#xff08;即通过自然语言处理执行特定任务的AI代理&#xff09;的使用和托管变得更加便捷和实用。它特别适合于日常生活中对数据分析、工具插件获取和网络浏览…