package.json配置

关于package.json文件配置详解 package.json文件配置解析 阅读详情

package.json的作用

packge.json在前端工程中是一个记录文档,它作为Web工程的入口文件,通常都是软件包集合
每个前端项目中都有package.json文件,在Web工程中,最常见的配置有配置项目启动、打包命令和声明依赖的npm包,有了它就可以把项目中一切需要操作包括版本、依赖等记录起来

package的必须字段

有几个字段是package必须填写的,会在执行npm init的时候填写:
◎ name:项目名称,必需字段。
◎ version:项目版本,必需字段。
◎ main:入口文件。
◎ license:项目遵守的许可证。
◎ scripts:可运行的npm命令。
◎ keywords:关键字。
◎ author:作者。
◎ description:项目描述。

author、license、repository、bugs配置

◎ author:作者信息。
◎ license:该包或者工程需要遵守的协议。
◎ repository:一个对象配置,type说明是Git库还是svn库,URL说明该包或者工程源代码地址。
◎ bugs:指明该包或者工程的bug地址或者反馈问题的E-mail,可以指定一个或者两个,以便于author快速搜集、处理问题。

scripts配置

scripts这个配置都是可执行的脚本命令,可以配置启动项目、测试脚本等,在前端工程中是不可或缺的重要配置之一:

    "scripts": {
        "dev": "node index.js",
        "predev": "node preIndex.js",
        "postdev": "node postIndex.js"
    },

这三个scripts命令都会执行,执行的顺序是predev→dev→postdev

devDependencies、dependencies配置

依赖包:npm包声明会添加到dependencies或者devDependencies中。dependencies中声明的是项目在生产环境中所必需的包。devDependencies中声明的是开发阶段需要的包,如Webpack、ESLint、Babel等,用来辅助开发。打包上线时并不需要这些包,所以要根据包的实际用途把它们声明在适当的位置。
若希望在找不到包或者安装失败时,npm包能继续运行,则可将该包放在optionalDependencies对象中。
optionalDependencies对象中的包会覆盖dependencies中同名的包,这一点需要特别注意

postcss配置

postcss是预加载器处理,可以为css3新特性加上浏览器前缀等等

   "postcss": {
        "plugins": {
            "autoprefixer": {}
        }
    }

Babel配置

可以对项目中ES6—7的代码转换配置等等,大多数都是Babel编译配置

"babdel" : {
  	"presets": ['@babel/preset-env'],
  	"plugins": [...]
 }

配置选项过多,请参考官方网站

sideEffects配置

该项为Webpack的辅助配置,是Webpack 4新增的一个特性,用来声明该包或模块是否包含sideEffects(副作用)
原理是Webpack能将标记为 side-effects-free 的包由 import{a} from xx 转换为 import{a}from’xx/a’,从而自动去掉不必要的模块。如果我们引入的包或模块标记了sideEffects:false,那么不管它是否有副作用,只要没有被用到,整个包或模块就会被完整地移除

bin配置

许多包都有一个或多个可执行文件,可以使用npm link命令把这些文件导入全局路径中,以便在任意目录下执行。如导入脚手架工具create-react-app的react-scripts中:

"bin": {
	"react-scripts": "./bin/react-scripts.js"
}

或导入vue-cli脚手架的@vue包中:

"bin" : {
	"vue": "bin/vue.js"
}

unpkg配置

unpkg配置:npm包中的所有文件都开启了CDN服务,该CDN服务由unpkg提供

lint-staged配置

lint-staged是一个在Git暂存文件上运行linters的工具,配置后每次修改一个文件即可给所有文件执行一次lint检查,通常配合gitHooks一起使用

githooks配置

定义一个钩子,在提交(commit)之前执行ESLint检查。在执行lint命令后,会自动修复暂存区的文件。修复之后的文件并不存储在暂存区中,所以需要用git add命令将修复后的文件重新加入暂存区。在执行pre-commit命令后,如果没有错误,就会执行git commit命令:

 "git-hooks" : {
	"pre-commit": "lint-staged"	
 }

version版本记录

查看npm包的版本信息,以vue包为例
◉ 查看最新版本:npm view vue version
◉ 查看所有版本:npm view vue versions

files配置

files是一个数组配置,用来描述当把npm包作为依赖包安装时需要说明的文件列表。当npm包发布时,files指定哪些文件会被推送到npm服务器中。如果指定的是文件夹,那么该文件夹下面的所有文件都会被提交。
如果有不想提交的文件,则可以在.npmignore中说明

main、module、browser配置

main配置用来指定加载的入口文件,在Browser环境和Node环境中均可使用,
module配置:定义npm包的ESM规范的入口文件,在Browser环境和Node环境中均可使用
browser配置:npm包在Browser环境下的入口文件
这三者都是与入口文件有关,他们之间的区别在于不同的环境下加载顺序:
◎ 如果使用loader加载ESM(ES module),那么这三项配置的加载顺序是browser→module→main;如果使用require加载CommonJS模块,则加载的顺序是main→module→browser。
◎ Webpack在进行项目构建时,有一个target选项,默认为Web,即构建Web应用。如果需要编译一些同构项目,如node项目,则只需将webpack.config.js的target选项设置为node进行构建即可
◎ 如果在Node环境中加载CommonJS模块或者ESM,则只有main字段有效

publicConfig配置

一组配置值,在发布时使用。比如使用registry指定发布的地址来发布指定的tag、access(public,restricted)等配置

engines配置

日常在维护一些遗留项目时,对npm包的版本或者Node的版本可能会有特殊的要求。如果不满足条件,则可能会出现各种各样奇怪的问题。为了让项目能够“开箱即用”,可以在engines中说明具体的版本号
engines仅起到说明的作用,即使用户安装的版本不符合,也不影响依赖包的安装

jsdelivr配置

jsdelivr配置:免费的CDN服务配置。

typings配置

ts的入口文件,作用与main配置相同

standard配置

standard是一个JavaScript代码检查和优化的工具库,可以在package.json包中增加相应的配置来优化代码

browserlist配置

browserlist配置:设置浏览器的兼容情况

package-license-types:从 package.json 数据中提取许可证类型 包许可证类型 从包数据中提取许可证类型 var pkg = { name : 'foo' , version : '1.0.0' , description : 'Lorem ipsum dolor sit amet' , repository : 'shinnn/foo' , author : 'Shinnosuke Watanabe' , licenses : [ 'BSD-3-Clause' , { type : 'MIT' , url : 'LICENSE.md' } ] } ; packageLicenseTypes ( pkg ) ; //=> ['BSD-3-Clause', 'MIT'] 它支持 、 和 。 安装 包管理器 npm install package-license-types 凉 立即下载

相关推荐

package.json文件配置详解

主要介绍了package.json文件配置详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

package.json文件配置说明

package.json文件是Node.js项目中的一个描述文件,执行npm init命令初始化项目后,在项目的根目录下自动生成该文件

Skty_ywh的博客 6446

深入理解 package.json配置文件

一个 JSON 格式的配置文件,位于 Node.js 项目的根目录下,包含项目的基本信息、依赖关系、脚本、版本等内容 一般分为几个部分:项目元数据、脚本、依赖关系、配置

码农研究僧的博客 3347

package.json 配置完全解读

package.json 配置完全解读

JackChan 5920

package.json配置都有什么

文件是每一个 Node.js 项目的“身份证”和“说明书”,它是一个 JSON 格式的配置文件,位于项目的根目录。它定义了项目的元数据、依赖关系、脚本命令等。下面我将中常见的配置项进行分类说明,从核心到扩展。

chaoxxggg的博客 1048

vue项目的package.json配置详解

{ "name": "vue-manage", // 项目名称 "version": "1.0.0", // 版本 "description": "Reimbursement Manage", // 描述 "author": "LXG", // 作者 "private": true, //是否私人项目 "scripts": { "dev": "node bu...

weixin_42003972的博客 1万+

package.json配置解读之入门

package.json是每个前端项目都会有的json文件,位于项目的根目录中。很多脚手架在创建项目的时候会帮我们自动初始化好 package.jsonpackage.json有许多配置与项目息息相关,了解他们有助于对项目的开发,接下来让我们开始了解package.json配置

山山而川~ 4057

package.json 配置详解

package.json配置详情

qq_44436509的博客 7740

Angular package.json 配置

{ "name": "your project name", "version": "1.0.0", "license": "MIT", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "build:dev": "n...

Impossible==I'm possible. 1027

package.json配置

文件是Node.js项目中的一个重要配置文件,用于存储项目的元数据和各种配置信息。

蓝冰凌的博客 1451

了解package.json配置

如果你有少数不上传的文件,那可以创建一个.npmignore 文件(类似于.gitignore,但该文件不会上传 npm),去掉你不需要上传的文件,其余都上传。有些项目所以来的包跟 npm 的版本或者 node 版本有要求,不符合版本的时候项目经常启动不起来,该文件只是说明该项目所需要的 node 版本,并非起到限制作用。该字段不能设置为空,它和版本号组成唯一的标识来代表整个项目,字母不能大写,可以使用-,_符号,如果需要在 npm 平台发布,需要保证你的 name 在平台是唯一的。开发阶段需要的依赖包。

徐三岁的博客 935

package.json 文件配置

package.json 文件参数详细介绍

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 1214

package.json mysql_package.json配置理解

3. 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install 命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。4. package.json文件可以手工编写,也可以使用npm init命令自动生成。二、package.json文件配置详解1.下面是最简...

weixin_30490029的博客 320

package.json配置详解

默认的package.json文件直接使用命令:npm init --yes生成 { "name": "pingdingshan", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" &a...

Minyoung 的博客 1027
上一篇: JavaScript的this运行机制
capableHxm
博客等级 码龄12年 1粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值