package.json简介

news2024/12/22 23:58:14

1、package.json简介

通过 npm init 初始化一个项目,会生成3个目录/文件, node_modules, package.json和 package.lock.json。其中package-lock.json文件是为了锁版本。

2、package.json常用属性

1)name

name是项目的名称,命名规范:

名称的长度必须小于或等于214个字符,不能以“.”和“_”开头,不能包含大写字母;

名称可以作为参数被传入require(""),用来导入模块,所以应当尽可能的简短、语义化;

名称不能和其他模块的名称重复,可以使用npm view命令查询模块明是否重复,如果不重复就会提示404。

2)version

version字段表示该项目包的版本号。

版本号的使用规范如下:

版本号的命名遵循语义化版本2.0.0规范,格式为:主版本号.次版本号.修订号,通常情况下,修改主版本号是做了大的功能性的改动,修改次版本号是新增了新功能,修改修订号就是修复了一些bug

如果某个版本的改动较大,并且不稳定,可能如法满足预期的兼容性需求,就需要发布先行版本,先行版本通过会加在版本号的后面,通过“-”号连接以点分隔的标识符和版本编译信息:内部版本(alpha)、公测版本(beta)和候选版本(rc,即release candiate)。

3)description

description字段用来描述这个项目包。

4)keywords

keywords字段是一个字符串数组,表示这个项目包的关键词。和description一样,都是用来增加项目包的曝光率的。

5)author

author顾名思义就是作者,表示该项目包的作者。它有两种形式,一种是字符串格式;另一种是对象形式

6)dependencies

dependencies字段中声明的是项目的生产环境中所必须的依赖包。使用 npm 或 yarn 安装npm包时,该npm包会被自动插入到此配置项中:

当在安装依赖时使用--save参数,也会将新安装的npm包写入dependencies属性

该字段的值是一个对象,该对象的各个成员,分别由模块名和对应的版本要求组成,表示依赖的模块及其版本范围。

下面三个版本号在安装的时候代表不同的含义:

        "4.17.15" 表示安装指定的4.17.15版本

        "~4.17.15" 表示安装4.17.X中的最新版本

        "^4.17.15" 表示安装4.X.X中的最新版本

7)devDependencies

devDependencies中声明的是开发阶段需要的依赖包,如Webpack、Eslint、Babel等,用于辅助开发。它们不同于 dependencies,因为它们只需安装在开发设备上,而无需在生产环境中运行代码。

当打包上线时并不需要这些包,可以使用 npm install --save-dev <PACKAGENAME> 这些依赖添加到 devDependencies 中,这些依赖依然会在本地指定 npm install 时被安装和管理,但是不会被安装到生产环境中。

8)scripts

scripts 是 package.json中内置的脚本入口,是key-value键值对配置,key为可运行的命令,可以通过 npm run 来执行命令。

"scripts": {

    "dev": "node index.js",

}

9)main & module & browser

main,module和browser 3个字段来定义npm包的入口文件。

main : 定义了 npm 包的入口文件,browser 环境和 node 环境均可使用。

module : 定义 npm 包的 ESM 规范的入口文件,browser 环境和 node - 环境均可使用。

browser : 定义 npm 包在 browser 环境下的入口文件。

10)config

config字段用来配置scripts运行时的配置参数。

3、npm和yarn的区别

npm 是 Node.js 的包管理工具;npm 通过 Node.js 模块根目录的 package.json 文件获取模块元数据和依赖关系等。

npm 有以下问题:

1.速度慢:npm 按照队列执行安装每个 package,只有当前 package 安装完成之后,才会进行后面的安装。

2.同一个项目,npm 安装的时候无法保持一致性,由于 package.json 文件中版本号的特点。

yarn的优点:

速度快、并行安装:npm是按照队列执行每一个包,也就是必须等到当前包安装完成之后才能继续后面的安装。而yarn是并行执行所有任务,提高了性能。

离线模式:如果之前已经安装过一个软件包,用yarn再次安装时会从缓存中获取,就不用像npm那样再从网络下载了。

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

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

相关文章

远程桌面无法连接,远程桌面连接登录没有成功

在信息技术领域&#xff0c;远程桌面连接作为一种便捷的管理和操作工具&#xff0c;对于企业和个人用户而言都具有极其重要的价值。然而&#xff0c;在实际使用过程中&#xff0c;远程桌面无法连接的问题时常出现&#xff0c;这不仅影响了工作效率&#xff0c;还可能对数据安全…

javascript--类型检测 type of 和 instanceof

类型判断 1、typeof2、instanceof**instanceof 的原理** 3、constructor 1、typeof typeof在检测null、object、array、data的结果中都是object&#xff0c;所以无法用来区分这几个类型的区别。 <script>let a ["123",123,false,true,Symbol(1),new Date(),n…

小兔鲜02

elementplus自动按需引入 elementplus主题色定制 安装sass npm install sass -D要替换的主题色内容&#xff1a; /* 只需要重写你需要的即可 */ forward element-plus/theme-chalk/src/common/var.scss with ($colors: (primary: (// 主色base: #27ba9b,),success: (// 成功…

lock-锁的概念

锁的简介 锁是计算机协调多个进程或线程并发访问某一资源的机制&#xff08;避免发生资源争抢&#xff09; 在并发环境下&#xff0c;多个线程会对同一个资源进行争抢&#xff0c;可能会导致数据不一致的问题。为了解决这一问题&#xff0c;需要通过一种抽象的锁来对资源进行…

第 402 场 LeetCode 周赛题解

A 构成整天的下标对数目 I 计数&#xff1a;遍历 h o u r s hours hours &#xff0c;记录 h o u r s [ i ] % 24 hours[i]\%24 hours[i]%24 的出现次数 class Solution {public:long long countCompleteDayPairs(vector<int>& hours) {vector<int> cnt(24);…

【内含优惠码】重磅发售!《2023年度中国量化投资白皮书》(纸质版)

这是可以公开了解量化行业图景的&#xff0c;为数不多资料。 简介 《2023年度中国量化投资白皮书》由宽邦科技、华泰证券、金融阶、华锐技术、AMD、阿里云、英迈中国等多家机构联合发起编写&#xff0c;并于2024年6月15日正式发布&#xff0c;全书公17万字6大章节勾勒最新量化…

【Unity | Editor强化工具】项目备忘录工具

经常会被美术和策划同事反复询问某几个问题&#xff0c;每次都要翻Wiki链接给他们&#xff0c;非常折磨人&#xff0c;所以做了个可以在Unity内部显示备忘录的小工具&#xff0c;能够减少一些查找成本&#xff08;另外我觉得&#xff0c;让他们养成查看Unity内触手可及的信息的…

thread model线程模型

Concurrency并发 vs. Parallelism执行 Many-to-One GNU Portable Threads 多对一即多个用户线程映射到单个内核线程 该模式用的少 一个线程阻塞会导致所有线程阻塞 多线程可能无法在多核系统上并行运行&#xff0c;因为同一时间内核中可能只有一个线程 Concurrent executio…

关于圆的方程

关于圆的方程 flyfish 几何定义 圆是平面上所有到一个固定点&#xff08;圆心&#xff09;距离相等的点的集合。 解析几何描述 设圆心位于点 ( h , k ) (h, k) (h,k)&#xff0c;半径为 r r r&#xff0c;那么对于圆上的任意一点 ( x , y ) (x, y) (x,y)&#xff0c;它…

如何把模糊的图片修复变清晰,怎么做?有那些方法?

模糊照片怎么修复清晰&#xff1f;有些照片可能会因为保存不当或其他原因而变得模糊&#xff0c;这些照片删掉又觉得可惜&#xff0c;那么如何让这些照片焕然一新呢&#xff1f;今天就给大家分享几种可以将这些珍贵的模糊照片修复为高清照片的方法。接下来&#xff0c;给大家演…

【算法专题--链表】删除排序链表中的重复元素 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 四、总结与提炼 五、共勉 一、前言 删除排序链表中的重复元素这道题&#xff0c;可以说是--链表专题--&#xff0c;最经典的一道题&#xff0c;也是在面试中频率最高的一道题目&#xff0c;通常在面试中&#xff0…

【Linux】I/O多路复用模型 select、poll、epoll

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;Linux系列专栏&#xff1a;Linux基础 &#x1f525; 给大家…

怎么将几段音频合并在一起,试试这几个音频拼接小妙招

怎么将多个音频合并在一起呢&#xff1f;音频是我们日常工作生活中常见的文件&#xff0c;音频与我们息息相关&#xff0c;无论你是音乐爱好者&#xff0c;还是喜欢记录生活中的声音&#xff0c;都离不开音频。因此我们会遇到关于很多音频剪辑的难题&#xff0c;就像今天小编给…

SpringBoot复习

第一章 SpringBoot开发入门 1.Springboot的优点。 ① 可快速构建独立的Spring应用。 ② 直接嵌入Tomcat、Jetty和Undertow服务器&#xff08;无须部署WAR文件&#xff09; ③ 通过依赖启动器简化构建配置 ④ 自动化配置Spring和第三方库 ⑤ 提供生产就绪功能 ⑥ 极少的代码生成…

Redis变慢了?之三

Redis变慢了&#xff1f;之三 Redis变慢了fork耗时优化方案 AOFAOF策略对性能影响 最后 Redis变慢了 Redis变慢上一篇文章地址&#xff1a;Redis变慢了&#xff1f;之二 这篇文章继续Redis变慢情况的分析。 fork耗时 在 Redis 中&#xff0c;fork 是一个非常重要的操作&…

ROS操作过程中的报错

文章目录 错误&#xff1a;E: Unable to locate package ros-noetic-desktop-full报错问题报错原因解决方法 错误2&#xff1a;ERROR: cannot download default source list from:报错问题错误原因解决办法 错误&#xff1a;E: Unable to locate package ros-noetic-desktop-fu…

Mysql 8.3.0 安装

Mysql 8.3.0 安装地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 下载链接&#xff1a;https://downloads.mysql.com/archives/get/p/23/file/mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz 解压&#xff1a; tar -xvf mysql-8.3.0-linux-glib…

javaWeb项目-ssm+vue企业台账管理平台功能介绍

本项目源码&#xff1a;javaweb项目ssm-vue企业台账管理平台源码-说明文档资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboo…

源代码保密的七种有效方法分享

在当今数字化时代&#xff0c;访问安全和数据安全成为企业面临的重要挑战。传统的边界防御已经无法满足日益复杂的内网办公环境&#xff0c;层出不穷的攻击手段已经让市场单一的防御手段黔驴技穷。当企业面临越来越复杂的网络威胁和数据泄密风险时&#xff0c;更需要一种综合的…

新手必读:平面设计自学全攻略

据说平面设计的门槛很低&#xff0c;零基础也很容易上手。但是据我所知许多初学者在自学平面设计时面临以下瓶颈&#xff1a;为什么跟着大神自学平面设计帖子依旧学不会呢&#xff0c;明明报了许多平面设计自学课程&#xff0c;但仍然不会自主设计&#xff0c;初学者到底从哪里…