npm入门教程5:package.json
一、package.json 文件的作用
- 依赖管理:列出项目所依赖的包(库)及其版本,便于其他开发者或自动化工具快速安装和更新这些依赖。
- 元数据描述:提供项目的描述、作者、许可证等元信息,有助于项目的管理和维护。
- 脚本管理:定义项目构建、测试等脚本命令,通过 npm run 命令执行。
二、创建 package.json 文件
有两种主要方法创建 package.json 文件:
-
交互式创建:
在命令行中运行
npm init命令,npm 会询问一系列问题,如项目名称、版本、描述等。根据提示输入相应信息后,npm 会生成一个包含这些信息的package.json文件。 -
快速创建:
使用
npm init -y或npm init --yes命令,npm 会使用默认值快速生成一个基本的package.json文件。
三、package.json 文件的主要字段
- name:项目名称,必须唯一且符合 npm 的命名规范。
- version:项目版本号,遵循语义化版本控制(Semantic Versioning)规范。
- description:项目的简短描述。
- main:项目的入口文件,默认为
index.js。 - scripts:定义脚本命令的对象,可以通过
npm run <script-name>执行。 - dependencies:生产环境下依赖的包及其版本。
- devDependencies:开发环境下依赖的包及其版本。
- repository:代码仓库的地址信息。
- keywords:项目的关键字数组,有助于在 npm 上搜索到项目。
- author:项目作者的信息。
- license:项目的许可证类型。
- bugs:提交问题或反馈的 URL 和邮箱地址。
- homepage:项目的主页 URL。
- config:为 npm 脚本提供配置信息的对象。
- engines:指定项目依赖的 Node.js 版本和其他运行时环境。
四、示例
以下是一个简单的 package.json 文件示例:
{"name": "my-awesome-project","version": "1.0.0","description": "A brief description of my awesome project","main": "index.js","scripts": {"start": "node index.js","test": "mocha"},"dependencies": {"express": "^4.17.1"},"devDependencies": {"mocha": "^8.2.0"},"repository": {"type": "git","url": "https://github.com/yourusername/my-awesome-project.git"},"keywords": ["node","express","project"],"author": "Your Name","license": "ISC","bugs": {"url": "https://github.com/yourusername/my-awesome-project/issues"},"homepage": "https://github.com/yourusername/my-awesome-project#readme"
}
五、操作 package.json 文件的常用命令
-
安装依赖:
- 安装生产依赖:
npm install - 安装开发依赖:
npm install --save-dev - 安装特定版本的包:
npm install <package_name>@<version>
- 安装生产依赖:
-
更新依赖:
- 更新所有依赖:
npm update - 更新特定包:
npm update <package_name>
- 更新所有依赖:
-
卸载依赖:
- 卸载生产依赖:
npm uninstall <package_name> - 卸载开发依赖:
npm uninstall <package_name> --save-dev
- 卸载生产依赖:
-
查看依赖信息:
- 查看已安装的依赖:
npm list - 查看过时的依赖:
npm outdated
- 查看已安装的依赖:
-
执行脚本:
- 执行定义的脚本命令:
npm run <script-name>
- 执行定义的脚本命令:
通过掌握 package.json 文件的创建、字段含义及常用命令,你可以更有效地管理 Node.js 项目的依赖和元数据。
相关文章:
npm入门教程5:package.json
一、package.json 文件的作用 依赖管理:列出项目所依赖的包(库)及其版本,便于其他开发者或自动化工具快速安装和更新这些依赖。元数据描述:提供项目的描述、作者、许可证等元信息,有助于项目的管理和维护。…...
docker-高级(待补图)
文章目录 数据卷(Volume)介绍查看方法删除方法绑定方法匿名绑定具名绑定Bind Mount 数据卷管理 网络bridge(桥接模式 默认)HOST(主机模式)Nonecontainer(指定一个容器进行关联网络共享)自定义(推荐)docker network 命令创建网络docker network create 实例展示-自定义实例展示-…...
Qt 文件目录操作
Qt 文件目录操作 QDir 类提供访问系统目录结构 QDir 类提供对目录结构及其内容的访问。QDir 用于操作路径名、访问有关路径和文件的信息以及操作底层文件系统。它还可以用于访问 Qt 的资源系统。 Qt 使用“/”作为通用目录分隔符,与“/”在 URL 中用作路径分隔符…...
Pandas 数据清洗
1.数据清洗定义 数据清洗是对一些没有用的数据进行处理的过程。很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要使数据分析更加准确,就需要对这些没有用的数据进行处理。 2.清洗空值 DataFrame.dropna(axis0, howany, threshN…...
IO学习笔记
当前需求,希望进行游戏可以保存游戏进度,可以将游戏的进度保存到一个文本文件,每一次打完游戏更新文本内容,下一次打游戏读取游戏进度,这里就涉及到两个知识IO流和File的知识。 File类 概述 java.io.File 类是文件…...
汇编练习-1
1、要求 练习要求引自《汇编语言-第4版》实验10.3(P209页) -编程,将data段中的数据,以10进制的形式显示出来 data segment dw 123,12666,1,8,3,38 data ends 2、实现代码(可惜没找到csdn对8086汇编显示方式) assume cs:codedata segmentdw 16 dup(0) ;除…...
初识二叉树( 二)
初识二叉树 二 实现链式结构二叉树前中后序遍历遍历规则代码实现 结点个数以及高度等层序遍历判断是否为完全二叉树 实现链式结构二叉树 ⽤链表来表示⼀棵二叉树,即用链来指示元素的逻辑关系。通常的方法是链表中每个结点由三个域组成,数据域和左右指针…...
AcWing1077-cnblog
问题背景 给定一个树形结构的图,每个节点代表一个地点,每个节点有一个守卫的代价。我们希望以最低的代价在树的节点上放置守卫,使得整棵树的所有节点都被监控。可以通过三种方式覆盖一个节点: 由父节点监控。由子节点监控。自己…...
五、SpringBoot3实战(1)
一、SpringBoot3介绍 1.1 SpringBoot3简介 SpringBoot版本:3.0.5 https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.introducing-spring-boot 到目前为止,你已经学习了多种配置Spring程序的方式…...
练习LabVIEW第三十三题
学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第三十三题: 用labview编写一个判断素数的程序 开始编写: LabVIEW判断素数,首先要搞…...
如何在服务器端对PDF和图像进行OCR处理
介绍 今天我想和大家分享一个我在研究技术资料时发现的很好玩的东西——Tesseract。这不仅仅是一个普通的库,而是一个用C语言编写的OCR神器,能够识别一大堆不同国家的语言。我一直在寻找能够处理各种文档的工具,而Tesseract就像是给了我一把…...
Windows 下实验视频降噪算法 MeshFlow 详细教程
MeshFlow视频降噪算法 Meshflow 视频降噪算法来自于 2017 年电子科技大学一篇高质量论文。 该论文提出了一个新的运动模型MeshFlow,它是一个空间平滑的稀疏运动场 (spatially smooth sparse motion field),其运动矢量 (motion vectors) 仅在网格顶点 (m…...
Python入门:如何正确的控制Python异步并发量(制并发量的关键技巧与易错点解析)
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 异步并发量控制 📒📝 Python异步并发简介📝 为什么要限制并发量🎈 资源管理🎈 服务稳定性📝 新手容易犯的错误🎈 忽略并发量限制🎈 错误设置并发量📝 设置并发量要注意的事情🎈 了解任务类型🎈 考虑系统资…...
qt QCheckBox详解
QCheckBox 是 Qt 框架中的一个控件,用于创建复选框,允许用户进行选择和取消选择。它通常用于表单、设置界面和任何需要用户选择的场景。 QCheckBox继承自QAbstractButton类,因此继承了按钮的特性。它表示一个复选框,用户可以通过…...
PAT甲级-1041 Be Unique
题目 题目大意 从一组数字中选出第一个唯一出现的数,输出该数。如果没有,则输出None。 思路 哈希的思想,将数值作为索引,对应该数值出现的次数,然后遍历数组即可。 注意第一个数字是指数字的个数,不是数…...
【jvm】如何设置堆内存大小
目录 1. 使用命令行参数设置2. idea中设置3. 注意事项 1. 使用命令行参数设置 1.在Java命令后添加-Xms和-Xmx参数。2.-Xms参数用于设置JVM的初始堆内存大小,等价于-XX:InitialHeapSize。3.-Xmx参数用于设置JVM的最大堆内存大小,等价于-XX:MaxHeapSize。…...
kernel源码分析 do_msgsnd read_msg
笔者分析的源码是v 5.11.22 链接:msg.c - ipc/msg.c - Linux source code v5.11.22 - Bootlin do_msgsnd static long do_msgsnd(int msqid, long mtype, void __user *mtext,size_t msgsz, int msgflg) {struct msg_queue *msq;struct msg_msg *msg;int err;str…...
掌握 CTE 技巧,实现连续日期和月份的 SQL 报表统计
在 SQL 查询中,报表统计往往涉及到特定时间段内的数据汇总,如每日、每月的销售数据等。然而,面对缺少数据的日期或月份,传统 SQL 查询可能会直接跳过这些日期,使得输出的报表在视觉上并不连续。本文将展示如何利用 CTE…...
【表格解决问题】EXCEL行数过多,WPS如何按逐行分别打印多个纸张中
1 问题描述 如图:我的表格行数太多了。打印在一张纸上有点不太好看 2 解决方式 Step01:先选中你需要打印的部分,找到【页面】->【打印区域】->【设置打印区域】 Step02:先选中一行,找到【插入分页符】 Step0…...
Maven讲解从基础到高级配置与实践
一、基础认知 1.1 Maven 的主要作用 Maven 主要是用来管理 Java 项目构建流程的工具,包括以下几个方面: 依赖管理:通过 POM.xml 文件管理项目的外部依赖库,不同版本的依赖包可以通过 Maven 中央仓库自动下载,减少了…...
百度网盘SVIP破解插件:macOS用户突破下载限速的终极指南
百度网盘SVIP破解插件:macOS用户突破下载限速的终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 百度网盘SVIP破解插件(…...
2025最权威的AI学术网站解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在人工智能技术迅猛快速发展的当下,各种各样的 AI 辅助论文写作工具不断地大量涌…...
轻量级推荐系统MiniOneRec:从协同过滤到服务部署的实践指南
1. 项目概述:一个轻量级、高可用的推荐系统引擎在数据驱动的今天,推荐系统早已不是大型互联网公司的专属。无论是电商平台、内容社区,还是企业内部的知识库、工具集,个性化推荐都已成为提升用户体验和业务效率的核心能力。然而&am…...
初创团队如何借助 Taotoken 实现低成本且灵活的大模型能力集成
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创团队如何借助 Taotoken 实现低成本且灵活的大模型能力集成 对于资源有限的初创技术团队而言,在开发新产品时集成 A…...
Hackintool:黑苹果配置不再复杂,这款工具让你轻松搞定所有难题
Hackintool:黑苹果配置不再复杂,这款工具让你轻松搞定所有难题 【免费下载链接】Hackintool The Swiss army knife of vanilla Hackintoshing 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintool 还在为黑苹果的配置问题头疼吗?…...
基于CircuitPython与NeoPixel的桌面俄罗斯方块游戏机DIY全攻略
1. 项目概述与核心思路几年前,我在麻省理工学院(MIT)的校园里第一次看到那座著名的“绿楼”(Green Building)外墙上的巨型俄罗斯方块游戏时,就被深深震撼了。那不仅仅是一个游戏,更是一种将冰冷…...
初创公司如何借助Taotoken管理多模型API调用与成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创公司如何借助Taotoken管理多模型API调用与成本 对于资源有限的初创技术团队而言,快速迭代产品并集成多种AI能力是常…...
抖音图片怎么去水印?2026年在线去水印工具+方法盘点,总有一款适合你
开篇:为什么要去水印? 保存抖音图片时,总会遇到水印的困扰。这些水印包含抖音logo、发布者名称,有时还会有账号信息。对于自媒体创作者、内容整理者或普通用户来说,去除水印往往是必需的。本文将介绍当下最实用的抖音图…...
从零构建高性能技术博客:SSG选型、自动化部署与SEO优化实战
1. 项目概述:一个技术博客的诞生与演进“wangtunan/blog”,这看起来只是一个简单的GitHub仓库名,背后却是一个技术人持续输出、构建个人知识体系的完整实践。它不仅仅是一个存放Markdown文件的代码库,更是一个集成了现代前端技术栈…...
GARbro:跨平台视觉小说游戏资源解析与提取工具
GARbro:跨平台视觉小说游戏资源解析与提取工具 【免费下载链接】GARbro Visual Novels resource browser 项目地址: https://gitcode.com/gh_mirrors/ga/GARbro GARbro是一款专门用于解析和提取视觉小说游戏资源文件的跨平台开源工具,支持数百种游…...
