package.json属性
添加链接描述
一、必须属性
- name
定义项目的名称,不能以".“和”_"开头,不能包含大写字母 - version
定义项目的版本号,格式为:大版本号.次版本号.修订号
二、描述信息
- description 项目描述
- keywords 项目关键词
- author 项目作者
- contributors 项目贡献者
- homepage 项目主页地址
- repository 项目代码仓库地址
- bugs 项目提交问题的地址
- funding 指定项目的资金支持方式和链接
三、依赖配置
- dependencies 生产环境的依赖包
如果不使用脱字符(^),安装的版本号固定;如果使用,则能安装当前大版本的最新版本,在package-lock.json中可查看当前实际安装的版本。 - devDependencies 开发环境的依赖包,例如webpack、vite、babel、ESLint等。
- peerDependencies
对等依赖的作用:
减小打包体积:例如使用react开发的组件库,安装react是必不可少的,而使用组件库的开发者,本地项目肯定安装了react,因此开发的组件库中不必把react打包进去(期望项目的使用者来提供这些模块的实现)。
版本一致性:使用你的组件库的开发者需要确保他们项目中安装了与你声明的对等依赖版本兼容的包,以确保组件库正常运行。
示例:声明要使用组件库,需在项目中安装大于17.0.1版本的react - peerDependenciesMeta
将对等依赖标记为可选,如果用户没有安装对等依赖,npm不会发出警告
"peerDependenciesMeta":{"react":{}
}
- bundledDependencies
声明捆绑依赖项(使用情景较少) - optionalDependencies
声明可选依赖项(使用情景较少) - 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中。
- 初始化项目
- 声明本项目是workspaces模式
"private":"true","workspaces":[ "packages/*" ]表示所有子包都在packages文件夹下 - 创建子包p1
npm init -w packages/p1 -y在node_modules/.package-lock.json中可以看到 “link”: true 链接符号信息 - 新建packages/p1/index.js
module.exports="p1包" - 创建子包p2
npm init -w packages/p2 -y - 将子包p1添加到p2中
npm i p1 -w p2安装,卸载等命令都是一样的,只是多了"–workspace="参数(简写-w),用来指定在哪个包中执行命令 - 子包p2使用p1
const p1 = require("p1");console.log("使用",p1);module.exports = 'p2包'workspaces功能与lerna类似,如果只需简单地管理多个包,workspaces足够了。lerna具有版本管理,发包提示,简化多包项目发布流程等更多功能。
四、脚本配置
相关文章:
package.json属性
添加链接描述 一、必须属性 name 定义项目的名称,不能以".“和”_"开头,不能包含大写字母version 定义项目的版本号,格式为:大版本号.次版本号.修订号 二、描述信息 description 项目描述keywords 项目关键词author …...
C# 把m4a格式文件转为MP3格式
直接上代码: 先引用 using NAudio.Wave; using NAudio.Lame; 1, 文件列表来自于根目录里所有的m4a文件 string directloc "G:\mp3\MP3"; string[] fyles Directory.GetFiles(directloc); NAudio.Wave.BlockAlignReductionStream stream …...
【分享】Word文档如何批量转换成PDF?
Word格式比较容易编辑,是工作中经常用到的文档工具,有时候为了避免文档在传送中出现乱码,或者防止被随意更改,很多人会把Word文档转换成PDF,那Word文档要怎样转成PDF呢?如果Word文档很多,有没有…...
dedecms tag 伪静态 数字版本
织梦伪静态将tag标签的url设置成id的方法: 1、在网站根目录下的tags.php中18行找到: if(isset($tags[2])) $PageNo intval($tags[2]);在其下方加入代码: $tagid intval($tag); if(!empty($tagid)) {$row $dsql->GetOne("SELECT …...
mysql数据库ip被阻断
windos服务器还是 linux服务器没关系。 登录服务器mysql 授权法。 例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 GRANT ALL PRIVILEGES ON *.* TO myuser% IDENTIFIED BY mypassword WITH GRANT OPTION如果你想允许用户myuser…...
Nginx WEB访问与Linux授权约束
看到所有文件的权限都是没有的,即便所有的权限都没有即使nginx做了配置,这些都是正确的。那么在浏览器真正去访问的时候是不能访问的。 [rootjenkins html]# ls -l total 4 drwxr-xr-x 2 root root 23 Sep 16 17:43 dist ---------- 1 root root 33 Sep …...
影响独立服务器稳定运行的因素
影响独立服务器稳定运行的因素 独立服务器的稳定对于网站和运行的程序来说都是最重要的因素,不只是简单的影响网站的速度,也影响搜索引擎对网站的优化。试想一下,客户在访问网站时,网页长时间打不开,页面崩溃会导致客户…...
Xcode14.3.1打包报错Command PhaseScriptExecution failed with a nonzero exit code
真机运行编译正常,一打包就报错 rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/d9889869-120b-11ee-b796-7a03568b17ac/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender2.6.9] Command PhaseScrip…...
[RF学习记录][ssh library][execute Command】关键字的返回值
有时候需要判断通过ssh在远程机器上执行的命令是否正常,使用关键字Execute Command可以在远程机器上运行命令,但是默认不加任何参数的话,没有看到范返回值,而这个关键字是带了几个参数的,简单的试验了下这几个参数&…...
【Python入门教程】Python实现猜数字小游戏
今天跟大家分享一下很久之前自己做的一款猜数字小游戏,基本的循环判断语句即可实现,可以用来当练手或者消磨时间用。 大家在编代码的时候最重要就是先理清逻辑思路,例如应该套几层循环、分几个模块等等。然后在编码时可以先随意一点ÿ…...
vue项目打包部署到服务器,报错。
这个是因为后端部署服务器时,名称没有对上,不是前端的问题,后端配置名称和前端的包名称保持一致就可以了。...
适用于初学者,毕业设计的5个c语言项目,代码已开源
C语言项目集 项目介绍 该项目适用于初学者学习c语言,也适用于高校学生课程设计,毕业设计参考。 项目并不能满足所有人的需求,可进行项目指导,定制开发。 开源地址 c语言项目代码地址 项目列表 该项目包含如下5个管理系统&am…...
虾皮商品详情数据接口
虾皮商品详情数据接口可以提供众多API读取内容,可传输大量数据,数据更新速度尤其快,保证了跨境电商接口服务数据的及时性及准确性;安全性强:使用SSL及虾皮网自主的安全技术,确保了跨境电商接口服务数据的安…...
数据大爆炸:大数据分析如何改变我们的世界
文章目录 大数据分析的基本概念数据的三个V大数据分析的技术 大数据分析在商业中的应用1. 个性化营销2. 风险管理3. 供应链优化4. 客户服务 大数据分析在医疗保健中的应用1. 疾病预测2. 患者治疗3. 医疗设备监控 大数据分析在科学研究中的应用1. 天文学2. 生物学3. 气象学 大数…...
WorkPlus私有化部署IM即时通讯平台,构建高效安全的局域网办公环境
随着数字化转型的加速,政府机构与企业对高效、安全的即时通讯和协作工具的需求日益增长。企业微信和钉钉作为当前市场上较为常见的通讯工具,虽然在一定程度上满足了企业内部协作的需求,但仍存在一些问题,如数据安全性、私有化部署…...
[C++随笔录] list使用
list使用 构造函数insert && 迭代器push_back && pop_back && push_front && pop_fronterasesort && find && reverse list的底层结构就是 带头双向循环链表 构造函数 // 默认构造 list<int> lt; cout << "l…...
机器学习总结
对以下文章机器学习总结 什么是深度学习?最易懂的机器学习入门文章-CSDN博客 人工智能和机器学习之间的关系 人工智能是一个最宽泛的概念,是一个研究领域,同时也是一个实现目标,而机器学习则是实现这一目标的一类方法。深度学习只是机器学…...
【刷题笔记9.24】LeetCode:二叉树最大深度
LeetCode:二叉树最大深度 1、题目描述: 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 二、思路与算法 如果我们知道了左子树和右子树的最大深度 lll 和 rrr,…...
投资理财知识分享:100个金融知识专业术语
大家好,我是财富智星,今天跟大家分享一下投资理财知识方面100个金融知识专业术语,希望能帮助大家了解更多金融知识。 1. 股票:代表对一家公司所有权的证券。 2. 债券:公司或政府发行的借款证券。 3. 投资组合ÿ…...
【ESP8266+TM1650时钟数码管+DS3231模块】制作网络时钟
【ESP8266TM1650时钟数码管DS3231模块】制作网络时钟 所需元器件接线方式代码 所需元器件 ESP8266 NodeMCU——开发板TM1650时钟数码管——显示时钟DS3231模块——网络对时 接线方式 TM1650 SCL—>D1 SDA—>D2DS3231 SCL—>D1 SDA—>D2 代码 #include <NTP…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...
结构化文件管理实战:实现目录自动创建与归类
手动操作容易因疲劳或疏忽导致命名错误、路径混乱等问题,进而引发后续程序异常。使用工具进行标准化操作,能有效降低出错概率。 需要快速整理大量文件的技术用户而言,这款工具提供了一种轻便高效的解决方案。程序体积仅有 156KB,…...
高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
Cursor AI 账号纯净度维护与高效注册指南
Cursor AI 账号纯净度维护与高效注册指南:解决限制问题的实战方案 风车无限免费邮箱系统网页端使用说明|快速获取邮箱|cursor|windsurf|augment 问题背景 在成功解决 Cursor 环境配置问题后,许多开发者仍面临账号纯净度不足导致的限制问题。无论使用 16…...
