npm简介与安装方法/管理与依赖管理/脚本命令与自定义

npm简介与安装方法

什么是npm?

npm(Node Package Manager)是Node.js的包管理工具和包管理系统,广泛用于JavaScript生态系统中。npm主要有以下几个功能:

  1. 包管理器:安装、更新、卸载Node.js包。
  2. 项目管理工具:初始化项目、管理项目依赖和版本控制。
  3. 命令行工具:执行各种开发和构建任务。
安装Node.js和npm

npm随Node.js一起安装,因此只需安装Node.js即可获得npm。

  1. 安装Node.js

    • 访问Node.js官方网站。
    • 下载适合你操作系统的安装包(LTS版本推荐)。
    • 按照安装包提示完成安装。
  2. 验证安装: 打开命令行工具,输入以下命令以确认安装成功:

    node -v 
    npm -v 

    这将输出Node.js和npm的版本号。

npm包管理与依赖管理

初始化项目

使用npm init命令初始化一个新的Node.js项目。这将生成一个package.json文件,包含项目的基本信息和依赖关系。

npm init 

你也可以使用-y标志自动生成默认配置:

npm init -y 
安装依赖包
  1. 安装指定的包

    npm install <package-name> 

    例如,安装express包:

    npm install express 
  2. 安装特定版本的包

    npm install <package-name>@<version> 

    例如,安装特定版本的express

    npm install express@4.17.1 
  3. 全局安装包

    npm install -g <package-name> 

    例如,全局安装nodemon

    npm install -g nodemon 
  4. 开发依赖(devDependencies): 使用--save-dev标志将包添加到开发依赖中,通常用于测试、构建和开发工具。

    npm install --save-dev <package-name> 

    例如,安装mocha作为开发依赖:

    npm install --save-dev mocha 
更新和删除依赖包
  1. 更新包

    npm update <package-name> 
  2. 卸载包

    npm uninstall <package-name> 
  3. 查看过时的包

    npm outdated 

npm脚本命令与自定义

npm脚本命令

npm允许在package.json文件中定义脚本命令,以便简化常见的任务。例如:

{"name": "my-project","version": "1.0.0","scripts": {"start": "node app.js","test": "mocha","build": "webpack --config webpack.config.js"}
}
  1. 运行脚本命令

    npm run <script-name> 

    例如,运行start脚本:

    npm run start 
  2. 预定义的脚本: npm提供了一些预定义的脚本命令,简化常见的任务。例如:

    • npm start:运行start脚本
    • npm test:运行test脚本
    • npm build:运行build脚本
自定义npm脚本

你可以在package.json中定义任意自定义脚本。例如:

{"scripts": {"lint": "eslint .","clean": "rm -rf dist && mkdir dist","dev": "nodemon app.js"}
}
  • lint脚本:运行ESLint检查代码。
  • clean脚本:删除dist目录并重新创建。
  • dev脚本:使用nodemon监视文件更改并重启应用。

自定义脚本可以显著简化开发流程和任务管理,使得复杂任务能够通过简单命令轻松执行。

结论

通过掌握npm的基本使用、包管理和自定义脚本命令,你可以更高效地管理项目依赖,自动化常见任务,并提升开发工作流程。npm不仅是一个强大的包管理器,更是现代JavaScript开发的重要工具之一。

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

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

相关文章

DB-GPT 文档切分报错

感谢阅读 配置完知识库&#xff0c;进行切分报错切分完成后&#xff0c;进行问答时后台日志报错 配置完知识库&#xff0c;进行切分报错 报的错如下 document sync error cryptography>3.1 is required for AES algorithm pip install -U cryptography 之后重新运行程序 …

SimpleService 一个简单的Windows Service定时服务

SimpleService 介绍 一个简单的Windows Service定时服务 SimpleService: 一个简单的Windows Service定时服务 使用说明

kimi AI,文生流程图,一句话kimi当场出图

kimi AI善于读长文、搜网页&#xff0c;主打功能包括整理资料、解读文件、辅助编程、文案写作等。 今天我们就让kimi帮我们一键生成流程图&#xff0c;再也不用自己画了&#xff1a; 不看广告看疗效&#xff1a; 告诉kimi使用Mermaid直接生成流程图&#xff0c;kimi直接生成…

AI是如何与快充技术结合的?

针对AI技术在快充领域的运用&#xff0c;我们可以进一步深入探讨AI如何与快充技术结合&#xff0c;提升充电效率和用户体验。以下是一些具体的AI技术在快充领域的应用场景&#xff1a; 一、智能充电算法 学习充电模式&#xff1a;AI算法可以学习用户的充电习惯&#xff0c;比…

容器技术-docker4

一、docker资源限制 在使用 docker 运行容器时&#xff0c;一台主机上可能会运行几百个容器&#xff0c;这些容器虽然互相隔离&#xff0c;但是底层却使用着相同的 CPU、内存和磁盘资源。如果不对容器使用的资源进行限制&#xff0c;那么容器之间会互相影响&#xff0c;小的来说…

获取键盘事件的keyCode属性

获取键盘事件的keyCode属性 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在本文中&#xff0c;我们将深入探讨在Java中如何获取键盘事件的keyCode属性。键盘事…

gin 服务端无法使用sse流式nginx配置

我在本地使用 gin 可以流式的将大模型数据传递给前端。但是当我部署到服务器中时&#xff0c;会阻塞一段时间&#xff0c;然后显示一大段文本。 起初我怀疑是gin 没有及时将数据刷到管道中&#xff0c;但是经过测试&#xff0c;还是会阻塞。 c.Writer.(http.Flusher).Flush()最…

(超详细)数据结构——“栈”的深度解析

前言&#xff1a; 在前几章我们介绍了线性表的基本概念&#xff0c;也讲解了包括顺序表&#xff0c;单链表&#xff0c;双向链表等线性表&#xff0c;相信大家已经对线性表比较熟悉了&#xff0c;今天我们要实现线性表的另一种结构——栈。 1.栈的概念 栈&#xff1a;一种特殊…

【Docker】存储数据卷

目录 1、挂载数据卷到容器里 2、查询挂载文件 3、容器与主机之间映射共享卷 4、三个容器之间使用共享卷 5、卷数据的备份与恢复 5.1 备份 5.2 恢复 1、挂载数据卷到容器里 docker run -itd --name test02 -v /data nginx docker exec -it test02 bashls / docker inspe…

如何对C++代码进行性能调优

对C代码进行性能调优是一个涉及多个方面的过程&#xff0c;包括代码优化、数据结构设计、算法选择、内存管理、并行化等多个方面。以下是一些常用的C性能调优技巧&#xff1a; 代码优化&#xff1a; 避免不必要的复制&#xff1a;使用引用或指针传递大型对象或数据结构。常量优…

解决IDEA的Web项目右键无法创建Servlet问题

右键新建没有servlet? 在pom.xml文件中需要导入servlet依赖&#xff0c;很简单的&#xff0c;别担心&#xff0c;就20秒解决 看我操作&#xff01;&#xff01;&#xff01; 1. 找到自动生成的pom.xml文件 只要你创建了maven项目&#xff0c;就会自动生成pom.xml文件&#xf…

ESP32-C3模组上跑通MQTT(7)—— tcp例程(2)

接前一篇文章:ESP32-C3模组上跑通MQTT(6)—— tcp例程(1) 《ESP32-C3 物联网工程开发实战》 一分钟了解MQTT协议 ESP32 MQTT API指南-CSDN博客 ESP-IDF MQTT 示例入门_mqtt outbox-CSDN博客 ESP32用自签CA进行MQTT的TLS双向认证通信_esp32 mqtt ssl-CSDN博客 特此致谢…

qiankun微前端:qiankun+vite+vue3+ts(未完待续..)

目录 什么是微前端 目前现有的微前端 好处 使用 子应用的页面在主应用里显示 什么是微前端 微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。 我的理解就是将一个大型的前端应用拆分成多个模块&#xff0c;每个微前端模块可以由…

目标检测的常用算法和框架

一、常见算法 下面介绍几种常见的目标检测算法: Haar特征+级联分类器:该算法使用Haar特征作为特征提取器,并通过级联分类器来检测目标。这种算法运行速度快,在处理实时视频时表现良好,但对于复杂场景的目标检测效果可能不理想。 HOG特征+SVM:该算法使用方向梯度直方图(…

C++ 设计模式之中介者模式

C 设计模式之中介者模式 简介 1、中介者模式&#xff08;Mediator&#xff09;是一种行为型设计模式&#xff0c;它用于减少对象之间的直接耦合&#xff0c;使得这些对象可以松散地耦合在一起&#xff0c;并且可以通过一个中介者对象来间接地交互。中介者模式通常用于一组对象…

Linux基础篇——目录结构

基本介绍 Linux的文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录"/"&#xff0c;然后在根目录下再创建其他的目录 在Linux中&#xff0c;有一句经典的话&#xff1a;在Linux世界里&#xff0c;一切皆文件 Linux中根目录下的目录 具体的…

木各力“GERRI”被“GREE”格力无效宣告成功

近日“GERRI”被“GREE”格力无效宣告成功&#xff0c;“GERRI”和“GREE”近似不&#xff0c;如果很近似当初就不会通过初审和下商标注册证&#xff0c;但是如果涉及知名商标和驰名商标&#xff0c;人家就可以异议和无效。 “GERRI”在被无效宣告时&#xff0c;引用了6个相关的…

(笔记)M1使用hombrew安装qemu

homebrew formulae的网址&#xff1a; qemu — Homebrew Formulae​​​​​​ brew install qemu 如果要支持OpenGL&#xff0c;执行下面的命令 brew tap knazarov/qemu-virglbrew install qemu-virgl 报错Error: qemu-virgl: Failed to download resource "qemu-virgl…

232. 用栈实现队列 (Implement Queue using Stacks)

用栈实现队列 (Implement Queue using Stacks) 题目描述 使用两个栈实现一个队列。队列的操作包括 push(x)、pop()、peek() 和 empty()。 示例&#xff1a; MyQueue queue new MyQueue();queue.push(1); queue.push(2); queue.peek(); // 返回 1 queue.pop(); // 返回…

深入剖析C++多态的实现与原理-详解 (三万字)

100编程书屋_孔夫子旧书网 目录 一、多态基础 虚函数 虚函数的继承虚类/虚基类重写/覆盖 条件:概念:多态的条件 其他的多态行为 多态中子类可以不写virtual协变 代码举例继承遗留问题解决 析构函数 具体解决方式:题目1 答案:解析:题目2 答案:C11 override和final final 功能1…