首页 > 其他分享 >package.json

package.json

时间:2022-10-12 14:44:06浏览次数:53  
标签:npm 依赖 name package json dependencies

package.json是什么?

npm是前端开发人员广泛使用的包管理工具,项目中通过package.json来管理项目中所依赖的npm包的配置。package.json就是一个json文件,除了能够描述项目的包依赖外,允许我们使用“语义化版本规则”指明你项目依赖包的版本,让你的构建更好地与其他开发者分享,便于重复使用。

 package.json

初始化一个nodejs项目

npm init

目录下会生成3个目录/文件, node_modules, package.json和 package.lock.json。其中package.json的内容为:

{
    "name": "Your project name",
    "version": "1.0.0",
    "description": "Your project description",
    "main": "app.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
    },
    "author": "Author name",
    "license": "ISC",
    "dependencies": {
        "dependency1": "^1.4.0",
        "dependency2": "^1.5.2"
    }
}

  package.json中包含了项目本身的元数据,以及项目的子依赖信息

package.json常用属性

script

在npm中使用script标签来定义脚本,每当制定npm run的时候,就会自动创建一个shell脚本,这里需要注意的是,npm run新建的这个 Shell,会将本地目录的node_modules/.bin子目录加入PATH变量。

这意味着,当前目录的node_modules/.bin子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。比如,当前项目的依赖里面有 esbuild,只要直接写esbuild xxx 就可以了。

{
  // ...
  "scripts": {
    "build": "esbuild index.js",
  }
}

 

{
  // ...
  "scripts": {
    "build": "./node_modules/.bin/esbuild index.js" 
  }
}

上面两种写法是等价的。

package.json依赖相关属性

package.json中跟依赖相关的配置属性包含了dependencies、devDependencies、peerDependencies和peerDependenciesMeta等。

dependencies是项目的依赖,而devDependencies是开发所需要的模块,所以我们可以在开发过程中需要的安装上去,来提高我们的开发效率。这里需要注意的时,在自己的项目中尽量的规范使用,形如webpack、babel等是开发依赖,而不是项目本身的依赖,不要放在dependencies中。

 

package-lock.json

本质上package-lock.json文件是为了锁版本,在package.json中指定的子npm包比如:react: "^16.0.0",在实际安装中,只要高于react的版本都满足package.json的要求。这样就使得根据同一个package.json文件,两次安装的子依赖版本不能保证一致。

而package-lock文件如下所示,子依赖dependency1就详细的指定了其版本。起到lock版本的作用。

{
    "name": "Your project name",
    "version": "1.0.0",
    "lockfileVersion": 1,
    "requires": true,
    "dependencies": {
        "dependency1": {
            "version": "1.4.0",
            "resolved": 
"https://registry.npmjs.org/dependency1/-/dependency1-1.4.0.tgz",
            "integrity": 
"sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
        },
        "dependency2": {
            "version": "1.5.2",
            "resolved": 
"https://registry.npmjs.org/dependency2/-/dependency2-1.5.2.tgz",
            "integrity": 
"sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ=="
        }
    }
}

 

 


标签:npm,依赖,name,package,json,dependencies
From: https://www.cnblogs.com/wxyblog/p/16784474.html

相关文章

  • Java 包(package)
    packageanimals;/***obj_7*/publicinterfaceAnimal{publicvoideat();publicvoidtravel();}packageanimals;/***obj_7*/publicclassMammalIntimpl......
  • 尚硅谷-JavaWeb Day8 Filter、Json、Ajax
    1.Filter过滤器(JavaEE的规范,也是接口)作用:拦截请求、过滤响应;(应用于权限检查、日记操作、事务管理等等)①基本使用(通过判断session域中是否包含用户信......
  • 记录 UE5 Cook Content 和 Package Project 无法打包/卡住的问题解决过程
    在UE工程打包为二进制的时候,我遇到了无法打包的情况,并且没有显示打包失败,而是一直卡住不动,日志一直不更新。我尝试了3个行为,前2个并没有真正解决问题,但到第3个行......
  • 43. JS解析JSON
    1.前言JSON全称为“JavaScriptObjectNotation”,是当前最流行的一种轻量级的数据交换格式,用来存储和传输数据,通常服务器端与客户端在进行交互时就是使用JSON格式的数......
  • 系列篇|编写一个翻转事件极性的package
    上次推送中我们已经能够利用现成的角点检测代码,完成事件相机数据的角点检测,并调用了rpg_dvs_ros这个package进行了显示。这次我们自己完成一个package,实现一个简单的功能:将......
  • javabean、xml、json、map之间的相互转换
    javabean转map利用cglib的BeanMap类实现转换importorg.springframework.cglib.beans.BeanMap;/****@Title:beanToMap*@Description:javabean转map*@parambean*......
  • nlohmann / json 使用
       下载地址   https://github.com/nlohmann/json/tree/develop/single_include/nlohmann/json.hpp  引入工程  json.hpp是源文件包含了所有的函数,引入......
  • NETCORE中如何操作Appsettings.json 文件
    对于很多初学NETCORE的同学来说,怎么从appsettings.json文件中获取各种类型数据,一直没搞明白。今天我们就对它的几种数据格式的读取做个说明。appsettings.json 是我们......
  • PyPackage01---Pandas10_apply方法使用
    Intro  R里面apply族函数很强大,原来以为python的是阉割版,没想到也很强大,还是需要多看看文档。。。相关环境和package信息:importsysimportpandasaspdimportnumpyas......
  • workerman/gatewayworker使用protobuffer和json的对比
    作者回答“在websocket上传输json更通用一些,调试也更方便一些。”“快0.00001秒没有什么太大意义。另外最好压测下php的json和protobuffer到底哪个快,php下还真不一定prot......