Package.json文件配置

  • 1、基本字段
  • 2、scripts:指定了运行脚本命令的npm命令行缩写
  • 3.dependencies字段,devDependencies字段:
  • 4.peerDependencies
  • 5.main字段
  • 6.types字段

package.json字面意义上就是一个包的json格式配置文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。
npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。一般来说可以将其分为几部分理解:

1、基本字段

"name": "@lsqblogfe/components-react-restpop",//包名
"version": "1.0.46",//包版本
"description": "",//说明    "author": "", //作者
"license": "ISC", //证书

2、scripts:指定了运行脚本命令的npm命令行缩写

"css": "npx copyfiles -u 1 './src/**/*.css' ./dist/",
"assets": "npx copyfiles -u 1 ./src/assets/*.png ./dist/",
"clean": "rimraf ./dist && rimraf ./types",
"dev": "npm run clean && npm run css && tsc -w",
"build": "npm run clean && npm run css && npm run assets && tsc",
"prepublishOnly": "npm run build"

就比如执行npm run build的时候,会执行clean,复制css、assets文件到./dist文件下,然后编译tsconfig.json文件。

3.dependencies字段,devDependencies字段:

dependencies字段指定了项目运行所依赖的模块,devDependencies指定项目开发所需要的模块。

它们都指向一个对象。该对象的各个成员,分别由模块名和对应的版本要求组成,表示依赖的模块及其版本范围。

对应版本可以有各种限定

  • 指定版本:,安装时只安装指定版本。比如1.2.2,遵循“大版本.次要版本.小版本”的格式规定。

  • 波浪号(tilde)+指定版本:不改变大版本号和次要版本号。比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x。

  • 插入号(caret)+指定版本:不改变大版本号。比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。

  • latest:安装最新版本。

 "devDependencies": {"@lsqblogfe/core": "^1.3.0","copyfiles": "^2.4.1","rimraf": "^3.0.2","typescript": "^4.6.2"},"dependencies": {"@types/react": "^17.0.24","@lsqblogfe/components-react": "^1.2.1-alpha.4","tsc": "^2.0.3"},

4.peerDependencies

用来供插件指定其所需要的主工具的版本,一般用于此项目依赖的模块同时被另一个依赖的模块所依赖,且二者依赖的版本有区别。

最典型的例子就是插件,比如A模块是B模块的插件。用户安装的B模块是1.0版本,但是A插件只能和2.0版本的B模块一起使用。这时,用户要是将1.0版本的B的实例传给A,就会出现问题。因此,需要一种机制,在模板安装的时候提醒用户,如果A和B一起安装,那么B必须是2.0模块。

    "peerDependencies": {"@lsqblogfe/core": "*"}

5.main字段

main字段指定了加载的入口文件,require(‘moduleName’)就会加载这个文件。这个字段的默认值是模块根目录下面的index.js,如果想要给用户提供多个组件,需要在入口文件将他们都导出。

"main": "dist/main.js",
main.js
JavaScript
export * from './Components/List';
export * from './Components/Swiper';
export * from './Components/Footer';

6.types字段

type字段相当于是一个声明,声明了所有文件和参数的类型。

package.json可以手动编写,也可以使用npm init 自动生成。其中只有name和version是必填的,其他配置都是选填

Package.json文件配置相关推荐

  1. npm package.json文件中的依赖关系,devDependencies和peerDependencies之间有什么区别?

    本文翻译自:What's the difference between dependencies, devDependencies and peerDependencies in npm packag ...

  2. npm package.json文件解读

    每个Nodejs项目的根目录下面,一般都会有一个package.json文件.该文件可以由npm init生成,定义了项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据). pa ...

  3. 大前端快闪:package.json文件知多少?

    最近在公司某项目参与了一些前端工作,作为后端抠脚大汉,改点前端细节磕磕绊绊,改点大前端.工程化.HTTP交互倒也还能做到柳暗花明. 于是打算用后端程序猿的视角记录一些{大前端}的知识快闪,也算是帮助读 ...

  4. package.json文件解读

    package.json文件解读 {"name": "vue-04-cli-demo1", // 项目名称 "version": " ...

  5. VScode 插件中 package.json 文件字段详解

    一.package.json文件内容 {// 插件的名字,应全部小写,不能有空格: string"name": "my-vscode-plugin",// 版本 ...

  6. Vue/React项目的package.json文件scripts命令解析

    Node 开发离不开 npm,而脚本功能是 npm 最强大.最常用的功能之一. 1.什么是 npm 脚本? npm 允许在package.json文件里面,使用scripts字段定义脚本命令. {// ...

  7. package.json文件详解

    目录 前言 一.package.json 文件作用 二.package.json 文件创建 三.package.json 文件示例 四.package.json 文件配置说明 前言 随着前端由多页面到 ...

  8. 模块加载及第三方包:Node.js模块化开发、系统模块、第三方模块、package.json文件、Node.js中模块的加载机制、开发环境与生产环境、cookie与session

    1.Node.js模块化开发 1.1 JavaScript开发弊端 JavaScript 在使用时存在两大问题,文件依赖和命名冲突. 1.2 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成 ...

  9. package.json文件||项目依赖||开发依赖

    package.json文件 node_modules文件夹的问题 package.json文件的作用 项目描述文件,记录了当前项目信息,例如项目名称.版本.作者.github地址.当前项目依赖了哪些 ...

  10. node.js 中的package.json文件怎么创建?

    最近在用webstorm和nodejs做一些东西,老是各种混乱,今天上午创建一个新的项目,结果发现,npm init之后,并没有出现package.json,并没有太明确他的功能的小姑娘表示十分的惊慌 ...

最新文章

  1. VC++ 串行化编程实例
  2. java spring省略jsp,Java +Tomcat + SpringMVC实现页面访问示例解析
  3. zookeeper安装_Linux下安装zookeeper
  4. Groovy 设计模式 -- 抽象工厂 模式
  5. react源码解读 {createClass}
  6. Android Bitmap Drawable 常用摘要
  7. 长治a货翡翠,永州a货翡翠
  8. 点云数据格式及处理工具
  9. DDD-领域驱动设计
  10. H5/web前端工程简历中的项目经验
  11. 北师大19秋计算机在线1,北师19秋《专科英语(二)》在线作业1【满分答案】
  12. ad软件one pin错误是啥意思_AD错误中英文对照
  13. java通过SMS短信平台实现发短信的功能
  14. 资深项目经理2019年总结
  15. SYS.MON_MODS$、SYS.MON_MODS_ALL$和DBA_TAB_MODIFICATIONS
  16. 个人如何做一个能赚钱的网站?
  17. 错误收集:备忘MPI Application rank 0 exited before MPI_Finalize()nbsp
  18. 一元线性回归模型(保姆级)
  19. minigui:mips平台交叉编译报错error: include location /usr/include/ is unsafe for cross-compilation
  20. 【郝斌老师数据结构学习笔记 day 6】

热门文章

  1. 花了一年时间开发的YBC管型三维预览控件
  2. 判断距离1970年1月1日的天数
  3. 动画必须有(二):悬浮菜单了解一下!
  4. GPU编程与CG语言之阳春白雪下里巴人.pdf 分享
  5. 由limits.h看整型范围
  6. html点击切换图片代码简易,html点击按钮时切换图片的代码是什么?
  7. tp5简单的图片上传
  8. 基于ESP32与phyphox的DIS实验制作(4)-使用超声波位移传感器研究弹簧振子的运动
  9. stata基础使用教程(操作版)
  10. 2022最新批量删除微博教程!支持批量删除微博批量删除清空点赞关注评价以及粉丝