package.json配置详解

package.json文件

执行 npm init 命令,会在当前目录生成一个 package.json 文件

这个文档是你需要知道的关于你的 package.json 文件中需要什么的所有信息。它必须是实际的 JSON,而不仅仅是一个 JavaScript 对象文字。

//package.json
{//如果你打算发布你的包,在你的package.json中最重要的事情是名称和版本字段,因为它们是必需的。名称和版本一起构成了一个标识符,该标识符被认为是完全唯一的。对软件包的更改应与对版本的更改一起沿着。// 如果您不打算发布您的软件包,则名称和版本字段是可选的。"name": "axios","version": "1.7.2",// 在里面加上描述。这是一个字符串。这有助于人们发现您的软件包,因为它在npm search中列出。"description": "Promise based HTTP client for the browser and node.js",// 把关键字放进去。这是一个字符串数组。这有助于人们发现您的软件包,因为它在npm search中列出。"keywords": ["xhr","http","ajax","promise","node"],// 项目主页的URL。"homepage": "https://axios-http.com",// 您的项目问题跟踪器的URL和/或应向其报告问题的电子邮件地址。这些对遇到您的软件包问题的人很有帮助。"bugs": {"url": "https://github.com/axios/axios/issues","email": "project@hostname.com"},// 你应该为你的软件包指定一个许可证,这样人们就知道他们可以如何使用它,以及你对它的任何限制。"license": "MIT",//  "license": "BSD-3-Clause"//  "license": "(ISC OR GPL-3.0)"//  "license": "SEE LICENSE IN <filename>"//作者 人员字段,email和url都是可选的。"author": "Barney Rubble","email": "b@rubble.com","url": "http://barnyrubble.tumblr.com/",//  "author": "Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"// 资金"funding": {"type": "individual","url": "http://example.com/donate"},// main字段是一个模块ID,它是程序的主要入口点。如果未设置main,则默认为包根文件夹中的index.js。"main": "index.js",// 如果你的模块是要在客户端使用的,那么应该使用浏览器字段而不是主字段。这有助于提示用户它可能依赖于Node.js模块中不可用的原语。// browser 字段提供对浏览器环境更友好的模块入口。"browser": {"./lib/adapters/http.js": "./lib/helpers/null.js","./lib/platform/node/index.js": "./lib/platform/browser/index.js","./lib/platform/node/classes/FormData.js": "./lib/helpers/null.js"},
//   很多软件包都有一个或多个可执行文件,他们想安装到PATH中。npm使这变得非常容易(事实上,它使用此功能来安装“npm”可执行文件。)
// 要使用这个,请在package.json中提供一个bin字段,它是命令名到本地文件名的映射。当这个软件包被全局安装时,该文件将被链接到全局bins目录中,或者将创建一个cmd(Windows命令文件)来执行bin字段中的指定文件,因此它可以由name或name.cmd(在Windows PowerShell上)运行。当这个包作为一个依赖项安装在另一个包中时,这个文件将被链接到这个包中,它可以直接通过npm exec或通过其他脚本中的名称在通过npm run-script调用它们时使用。"bin": {"myapp": "bin/cli.js","axios": "bin/api.js"},// 指定代码所在的位置。这对那些想做贡献的人很有帮助。如果git repo在GitHub上,那么npm repo命令就可以找到你。"repository": {"type": "git","url": "https://github.com/axios/axios.git"},// 脚本"scripts": {"start": "node ./sandbox/server.js","build": "gulp clear && cross-env NODE_ENV=production rollup -c -m","examples": "node ./examples/server.js",},// “config”对象可用于设置在升级过程中持续存在的包脚本中使用的配置参数。"config": {"port": "8080",},// 依赖// dependencies字段中声明的是项目的生产环境中所必须的依赖包。当使用 npm 或 yarn 安装npm包时,该npm包会被自动插入到此配置项中"dependencies": {"foo": "1.0.0 - 2.9999.9999","bar": ">=1.0.2 <2.1.2","baz": ">1.0.2 <=2.3.4","boo": "2.0.1",//完全等于"qux": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0","asd": "http://asdf.com/asdf.tar.gz","elf": "~1.2.3",//相似版本"two": "2.x",//"lat": "latest","antd": "^5.12.8","antd-img-crop": "^4.12.2","antd-style": "^3.6.1",// 本地路径"bar": "file:../foo/bar",// 本地路径 直接链接到项目下的ckeditor5目录"ckeditor5-custom-build": "file:./ckeditor5",},// devDependencies中声明的是开发阶段需要的依赖包,如Webpack、Eslint、Babel等,用于辅助开发。它们不同于 dependencies,因为它们只需安装在开发设备上,而无需在生产环境中运行代码。当打包上线时并不需要这些包,所以可以把这些依赖添加到 devDependencies 中,这些依赖依然会在本地指定 npm install 时被安装和管理,但是不会被安装到生产环境中。"devDependencies": {},// 在某些情况下,你想表达你的包与宿主工具或库的兼容性,而不一定要做这个宿主的require。这通常被称为插件。
//   有些情况下,我们的项目和所依赖的模块,都会同时依赖另一个模块,但是所依赖的版本不一样。比如,我们的项目依赖A模块和B模块的1.0版,而A模块本身又依赖B模块的2.0版。大多数情况下,这不是问题,B模块的两个版本可以并存,同时运行。但是,有一种情况,会出现问题,就是这种依赖关系将暴露给用户。
// 最典型的场景就是插件,比如A模块是B模块的插件。用户安装的B模块是1.0版本,但是A插件只能和2.0版本的B模块一起使用。这时,用户要是将1.0版本的B的实例传给A,就会出现问题。因此,需要一种机制,在模板安装的时候提醒用户,如果A和B一起安装,那么B必须是2.0模块。
// peerDependencies字段就是用来供插件指定其所需要的主工具的版本。
// npm3.0版本开始 不会默认安装了"peerDependencies": {"tea": "2.x"},// bundledDependencies配置项是一个数组,数组里可以指定一些模块,这些模块将在这个包发布时被一起打包。
// 需要注意,这个字段数组中的值必须是在dependencies, devDependencies两个里面声明过的包才行"bundledDependencies":[],//   如果需要在找不到包或者安装包失败时,npm仍然能够继续运行,则可以将该包放在optionalDependencies对象中,optionalDependencies对象中的包会覆盖dependencies中同名的包,所以只需在一个地方进行设置即可。
// 需要注意,由于optionalDependencies中的依赖可能并为安装成功,所以一定要做异常处理,否则当获取这个依赖时,如果获取不到就会报错。"optionalDependencies":{},// 引擎// 当我们维护一些旧项目时,可能对npm包的版本或者Node版本有特殊要求,如果不满足条件就可能无法将项目跑起来。为了让项目开箱即用,可以在engines字段中说明具体的版本号// 需要注意,engines只是起一个说明的作用,即使用户安装的版本不符合要求,也不影响依赖包的安装"engines": {"node": ">=0.10.3 <15","npm": "~1.0.20"},// 操作系统"os": ["darwin", "linux","!win32"],//"cpu": ["x64", "ia32","!arm", "!mips"],// 如果你在package.json中设置了"private": true,那么npm将拒绝发布它。"private": true,"types": "index.d.ts","type": "module",//支持使用es module
}

详细字段描述:https://docs.npmjs.com/cli/v10/configuring-npm/package-json

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

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

相关文章

使用vue动态给同一个a标签添加内容 并给a标签设置hover,悬浮文字变色,结果鼠标悬浮有的字上面不变色

如果Vue的虚拟DOM更新机制导致样式更新不及时&#xff0c;你可以尝试以下几种方法来解决这个问题&#xff1a; 确保使用响应式数据&#xff1a; 确保你使用的数据是响应式的&#xff0c;并且任何对这些数据的更改都会触发视图的更新。在Vue中&#xff0c;你应该使用data对象中的…

多源BFS——AcWing 173. 矩阵距离

多源BFS 定义 多源BFS&#xff08;多源广度优先搜索&#xff09;是一种图遍历算法&#xff0c;它是标准BFS&#xff08;广度优先搜索&#xff09;的扩展&#xff0c;主要用于解决具有多个起始节点的最短路径问题。在多源BFS中&#xff0c;不是从单一源点开始搜索整个图&#…

怎么把webp格式转换成jpg?5个图片格式转换方法全面解析(2024最新)

webp 图片常用于网站&#xff0c;可显著改善页面的浏览和加载体验。然而&#xff0c;许多设备&#xff08;如苹果手机设备、安卓手机等&#xff09;不支持webp文件。在这些设备上查看webp文件时&#xff0c;最佳做法是将其转换为其他常见格式&#xff0c;如jpg或 png。Windows电…

LeetCode 69. x 的平方根

更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。 组队打卡&#xff0c;更多解法等你一起来参与哦&#xff01; LeetCode 69. x 的平方根 &#xff0c;难度简单。 暴力 解题思路&#xff1a;直接遍历平方 i&#xff0c; 判断 x 是否满足 i 2 ≤ x < ( i …

2024上海大学生程序设计竞赛I-六元组计数原根知识详解

以前基本没有了解原根相关的一块内容&#xff0c;最近正好碰到了这个题&#xff0c;于是写一篇博客记录一下。 这道题的总体思路就是比较明显&#xff0c;就是先算出 a p x a^px apx对于每个 x x x的解的个数&#xff0c;然后NTT算一下即可。 先来讲一下怎么求欧拉函数 ϕ ( …

前端FCP指标优化

优化前 第三方依赖按需引入之后&#xff0c;打包的总体积减小到初始值的55%&#xff0c;但是依然存在很大的js文件&#xff0c;需要继续优化 chunk-vendors.js进行分包之后 截图 compression-webpack-plugin压缩之后 截图

简单制作基础的Python镜像

拉取基础镜像 以Ubuntu24示例 docker pull ubuntu:24.04 启动 docker run -it -d --name ubuntu24 ubuntu:24.04 进入docker docker exec -it ubuntu24 /bin/bash 更新依赖 apt update apt full-upgrade 安装pip 会自动安装python3.11.7 apt install pip 支持中文…

55、Flink 中使用 Java Lambda 表达式详解

1&#xff09;概述 1.注意 Flink 支持对 Java API 的所有算子使用 Lambda 表达式&#xff0c;但是&#xff0c;当 Lambda 表达式使用 Java 泛型时&#xff0c;需要 显式 地声明类型信息。 2.示例和限制 示例&#xff1a; map() 函数使用 Lambda 表达式计算输入值的平方。 …

大学新生人工智能学习路线规划

1. 引言 七月来临&#xff0c;各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束&#xff0c;而是新旅程的开始。对于有志于踏入IT领域的高考少年们&#xff0c;这个假期是开启探索IT世界的绝佳时机。作为该领域的前行者和经验前辈&#xff0c;我愿意为准新生们提供一…

基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务10:Hive安装部署

任务描述 任务内容为安装并配置在Hadoop集群中使用Hive。 任务指导 Hive是一个基于Hadoop的数据仓库框架&#xff0c;在实际使用时需要将元数据存储在数据库中 具体安装步骤如下&#xff1a; 1. 安装MySQL数据库&#xff08;已安装&#xff09; 2. 解压缩Hive的压缩包 3…

剪映 v5.5 Pro Vip解锁版:使用指南与注意事项

摘要&#xff1a;本文介绍了剪映Pro VIP解锁版的使用方法&#xff0c;包括安装、测试和使用VIP素材的步骤&#xff0c;以及如何避免误报和保持解锁状态的建议。 正文&#xff1a; 剪映Pro是一款广受欢迎的视频编辑软件&#xff0c;提供了丰富的视频编辑功能和大量高质量的素材…

发送微信消息和文件

参考&#xff1a;https://www.bilibili.com/video/BV1S84y1m7xd 安装&#xff1a; pip install PyOfficeRobotimport PyOfficeRobotPyOfficeRobot.chat.send_message(who"文件传输助手", message"你好&#xff0c;我是PyOfficeRobot&#xff0c;有什么可以帮助…

RabbitMQ中java实现队列和交换机的声明

java实现队列和交换机的声明 在之前我们都是基于RabbitMQ控制台来创建队列、交换机。但是在实际开发时&#xff0c;队列和交换机是程序员定义的&#xff0c;将来项目上线&#xff0c;又要交给运维去创建。那么程序员就需要把程序中运行的所有队列和交换机都写下来&#xff0c;…

【PYG】 PyTorch中size方法和属性

在 PyTorch 中&#xff0c;size 方法和属性用于获取张量的维度信息。下面是它们的用法和区别&#xff1a; node_features.size&#xff1a; 这是一个属性&#xff08;attribute &#xff09;&#xff0c;返回一个 torch.Size 对象&#xff0c;表示张量的维度。这是不可调用的&a…

用MySQL+node+vue做一个学生信息管理系统(一):配置项目

先用npm init -y生成配置文件 在项目下新建src文件夹&#xff0c;app.js文件。src目录用来放静态资源文件&#xff0c;app.js是服务器文件&#xff0c;index.js是vue的入口文件 使用npm install express下载express框架 在app.js文件夹开启node服务&#xff0c;监听的端口为…

C++ //练习 14.29 为什么不定义const版本的递增和递减运算符?

C Primer&#xff08;第5版&#xff09; 练习 14.29 练习 14.29 为什么不定义const版本的递增和递减运算符&#xff1f; 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 解释&#xff1a; 递增和递减要改变对象本身&#xff0c;const类…

Go语言--运算符

算术运算符 关系运算符 不能写0<a<10&#xff0c;要判断必须0<a&&a<10。因为int和bool不兼容 逻辑运算符 位运算符 赋值运算符 其他 运算符的优先级

AcWing 1254:找树根和孩子

【题目来源】https://www.acwing.com/problem/content/1256/【题目描述】 给定一棵树&#xff0c;输出树的根root&#xff0c;孩子最多的结点max以及他的孩子。【输入格式】 第一行&#xff1a;n&#xff0c;m&#xff0c;表示树的节点数和边数。 以下m行&#xff1a;每行两个结…

浮点数在内存中的存储结构

浮点数在内存中的存储可以参考《IEEE754标准》https://people.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF 参考博文&#xff1a;IEEE754详解&#xff08;最详细简单有趣味的介绍&#xff09;-CSDN博客 单精度float占内存4字节&#xff0c;最高位bit31表示符号位&…

国家海岸线变化评估:新英格兰和中大西洋沿岸海岸线的历史变化

National Assessment of Shoreline Change: Historical Shoreline Change along the New England and Mid-Atlantic Coasts 国家海岸线变化评估&#xff1a;新英格兰和中大西洋沿岸海岸线的历史变化 摘要 海滩侵蚀是美国许多公海沿岸的一个长期问题。随着沿岸人口的不断增加…