package.json属性

2023-09-21 17:40:50

添加链接描述
一、必须属性

  1. name
    定义项目的名称,不能以".“和”_"开头,不能包含大写字母
  2. version
    定义项目的版本号,格式为:大版本号.次版本号.修订号

二、描述信息

  1. description 项目描述
  2. keywords 项目关键词
  3. author 项目作者
  4. contributors 项目贡献者
  5. homepage 项目主页地址
  6. repository 项目代码仓库地址
  7. bugs 项目提交问题的地址
  8. funding 指定项目的资金支持方式和链接

三、依赖配置

  1. dependencies 生产环境的依赖包
    如果不使用脱字符(^),安装的版本号固定;如果使用,则能安装当前大版本的最新版本,在package-lock.json中可查看当前实际安装的版本。
  2. devDependencies 开发环境的依赖包,例如webpack、vite、babel、ESLint等。
  3. peerDependencies
    对等依赖的作用:
    减小打包体积:例如使用react开发的组件库,安装react是必不可少的,而使用组件库的开发者,本地项目肯定安装了react,因此开发的组件库中不必把react打包进去(期望项目的使用者来提供这些模块的实现)。
    版本一致性:使用你的组件库的开发者需要确保他们项目中安装了与你声明的对等依赖版本兼容的包,以确保组件库正常运行。
    示例:声明要使用组件库,需在项目中安装大于17.0.1版本的react
  4. peerDependenciesMeta
    将对等依赖标记为可选,如果用户没有安装对等依赖,npm不会发出警告
"peerDependenciesMeta":{
	"react"{}
}
  1. bundledDependencies
    声明捆绑依赖项(使用情景较少)
  2. optionalDependencies
    声明可选依赖项(使用情景较少)
  3. engines
    声明对npm或node的版本要求
"engines":{
	"node"">=8.10.3 <12.13.0",
	"npm": ">=6.9.0"
}

目前对NPM来说,engines只是起一个说明的作用,即使用户安装的版本不符合要求,也不影响依赖包的安装。但使用pnpm 和 yarn安装,如果版本不符合要求会导致安装失败。
8. workspaces
单个代码库中统一管理多个包(monorepo),在workspaces声明目录下的package会软链到根目录的node_modules中。

  1. 初始化项目
  2. 声明本项目是workspaces模式 "private":"true","workspaces":[ "packages/*" ]表示所有子包都在packages文件夹下
  3. 创建子包p1 npm init -w packages/p1 -y在node_modules/.package-lock.json中可以看到 “link”: true 链接符号信息
  4. 新建packages/p1/index.js module.exports="p1包"
  5. 创建子包p2npm init -w packages/p2 -y
  6. 将子包p1添加到p2中npm i p1 -w p2安装,卸载等命令都是一样的,只是多了"–workspace="参数(简写-w),用来指定在哪个包中执行命令
  7. 子包p2使用p1const p1 = require("p1");console.log("使用",p1);module.exports = 'p2包'workspaces功能与lerna类似,如果只需简单地管理多个包,workspaces足够了。lerna具有版本管理,发包提示,简化多包项目发布流程等更多功能。

四、脚本配置

更多推荐

web网站学习 apache (一)

文章目录学习内容apache概述apache模式配置文件详解配置实战基于域名的虚拟主机总结题学习内容web网站学习apachenginxtomcatapache概述ApacheHTTPServer(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全

JMeter压测工具介绍、安装及汉化教程,详解安装目录结构

🧑‍💻作者名称:DaenCode🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······😎人生感悟:尝尽人生百味,方知世间冷暖。📖所属专栏:JMeter实战专栏推荐专门为Re

【C++】特殊类设计

文章目录1.设计一个类,不能被拷贝1.C++98的实现方式2.C++11的实现方式2.设计一个类,只能在堆上创建对象3.设计一个类,只能在栈上创建对象4.设计一个类不能被继承4.1C++98的方式4.2C++11之后的方式5.设计一个类,只能创建一个对象(单例模式)重点5.1设计模式5.2单例模式5.2.1饿汉模式5.

互联网医院|互联网医院系统引领医疗科技新风潮

互联网的迅速发展已经改变了人们的生活方式,而医疗领域也不例外。近年来,互联网医院应运而生,为患者和医生提供了更便捷、高效的医疗服务。本文将深入探讨互联网医院的系统特点、功能以及未来的发展方向,为您展现医疗行业的新时代。互联网医院的系统特点使其与传统医疗方式截然不同。首先,互联网医院做到了线上线下无缝对接,通过互联网技术

buuctf web [极客大挑战 2019]Http

进入题目上下翻找了一下,没有什么突破口检查了一下源码,有一个跳转页面点击页面,跳转到了新的地方新页面里没有别的跳转接口但是页面中有提示:Itdoesn'tcomefrom'https://Sycsecret.buuoj.cn'打开burp页面提示要求来自https://Sycsecret.buuoj.cn所以,我们添加

万字长文详解Webpack5高级优化

本文从4个角度对webpack和代码进行了优化:1.提升开发体验使用SourceMap让开发或上线时代码报错能有更加准确的错误提示。2.提升打包构建速度使用HotModuleReplacement让开发时只重新编译打包更新变化了的代码,不变的代码使用缓存,从而使更新速度更快。使用OneOf让资源文件一旦被某个loade

Neutron — API Service Web 开发框架

目录文章目录目录WSGIWSGI的工作原理environ参数start_resposne参数WSGI的中间件WSGIWeb开发框架OpenStack中的应用案例进程入口WSGIApplication加载Paste/PasteDeployRoutesWebObWSGIServer启动WSGIWSGI(WebServerG

【软考中级】网络工程师:7.下一代互联网

IPv4问题与改进IPv4存在以下著名的问题:网络地址短缺(32位)以二进制数串表示,v4仅有43亿个地址,而IPv6有128位,且以十六进制数串表示。(现在还能用v4得益于NAT地址转换)地址分配不合理:IPv4中有1/3被美国占用了,其大型企业地址数比很多国家都多。路由速度慢:路由表日趋庞大,路由查找速度越来越慢。

ElasticSearch 5.6.3 自定义封装API接口

在实际业务中,查询elasticsearch时会遇到很多特殊查询,官方接口包有时不便利,特殊情况需要自定义接口,所以为了灵活使用、维护更新编写了一套API接口,仅供学习使用当前自定义API接口依赖elasticsearch5.6.3版本,其它版本自行测试修改源码同时为了更好的帮助读者使用,编写了一套查询文档,下载cas

在 Linux 上运行 macOS?OSX-KVM 助你梦想成真!| 开源日报 No.36

isocpp/CppCoreGuidelinesStars:39.4kLicense:NOASSERTIONC++CoreGuidelines是一个由BjarneStroustrup领导的协作项目,旨在帮助人们有效地使用现代C++。该指南侧重于较高级别的问题,如接口、资源管理、内存管理和并发性,并鼓励应用程序架构和库设

docker学习2-基本指令

1、帮助命令dockerversion#版本信息dockerinfo#显示docker系统信息,镜像容器数量docker命令--help#帮助命令2、镜像命令dockerimages查看所有本地主机上的镜像dockerimages-a列出所有镜像dockerimages-q只显示镜像的iddockersearch+镜像

热文推荐