当前位置: 首页 > news >正文

package.json(2)

发布配置

和npm 项目包发布相关的配置。

private

private 字段可以防止我们意外地将私有库发布到 npm 服务器。只需要将该字段设置为 true:

"private": true
preferGlobal

preferGlobal 字段表示当用户不把该模块安装为全局模块时,如果设置为 true 就会显示警告。它并不会真正的防止用户进行局部的安装,只是对用户进行提示,防止产生误解:

"preferGlobal": true
publishConfig

publishConfig 配置会在模块发布时生效,用于设置发布时一些配置项的集合。如果不想模块被默认标记为最新,或者不想发布到公共仓库,可以在这里配置 tag 或仓库地址。更详细的配置可以参考 npm-config[1]。

通常情况下,publishConfig 会配合 private 来使用,如果只想让模块发布到特定 npm 仓库,就可以这样来配置:

"private": true,
"publishConfig": {"tag": "1.1.0","registry": "https://registry.npmjs.org/","access": "public"
}
os

os 字段可以让我们设置该 npm 包可以在什么操作系统使用,不能再什么操作系统使用。如果我们希望开发的 npm 包只运行在 linux,为了避免出现不必要的异常,建议使用 Windows 系统的用户不要安装它,这时就可以使用 os 配置:

"os" ["linux"]   // 适用的操作系统
"os" ["!win32"]  // 禁用的操作系统
cpu

该配置和 OS 配置类似,用 CPU 可以更准确的限制用户的安装环境:

"cpu" ["x64", "AMD64"]   // 适用的cpu
"cpu" ["!arm", "!mips"]  // 禁用的cpu

可以看到,黑名单和白名单的区别就是,黑名单在前面加了一个 “!”。

license

license 字段用于指定软件的开源协议,开源协议表述了其他人获得代码后拥有的权利,可以对代码进行何种操作,何种操作又是被禁止的。常见的协议如下:

  • MIT :只要用户在项目副本中包含了版权声明和许可声明,他们就可以拿你的代码做任何想做的事情,你也无需承担任何责任。

  • Apache :类似于 MIT ,同时还包含了贡献者向用户提供专利授权相关的条款。

  • GPL :修改项目代码的用户再次分发源码或二进制代码时,必须公布他的相关修改。

可以这样来声明该字段:

"license": "MIT"

第三方配置

package.json 文件还可以承载命令特有的配置,例如 Babel、ESLint 等。它们每个都有特有的属性,例如 eslintConfig、babel 等。它们是命令特有的,可以在相应的命令 / 项目文档中找到如何使用它们。下面来看几个常用的第三方配置项。

typings

typings 字段用来指定 TypeScript 的入口文件:

"typings": "types/index.d.ts",

该字段的作用和 main 配置相同。

eslintConfig

eslint 的配置可以写在单独的配置文件. eslintrc.json 中,也可以写在 package.json 文件的 eslintConfig 配置项中。

"eslintConfig": {"root": true,"env": {"node": true},"extends": ["plugin:vue/essential","eslint:recommended"],"rules": {},"parserOptions": {"parser": "babel-eslint"},
}
babel

babel 用来指定 Babel 的编译配置,代码如下:

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

使用该字段可以让 npm 上所有的文件都开启 cdn 服务,该 CND 服务由 unpkg 提供:

"unpkg": "dist/vue.js"
lint-staged

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

"lint-staged": {"*.js": ["eslint --fix","git add"]
}

使用 lint-staged 时,每次提交代码只会检查当前改动的文件。

gitHooks

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

"gitHooks": {"pre-commit": "lint-staged"
}

这里就是配合上面的 lint-staged 来进行代码的检查操作。

browserslist

browserslist 字段用来告知支持哪些浏览器及版本。Babel、Autoprefixer 和其他工具会用到它,以将所需的 polyfill 和 fallback 添加到目标浏览器。比如最上面的例子中的该字段值:

"browserslist": {"production": [">0.2%","not dead","not op_mini all"],"development": ["last 1 chrome version","last 1 firefox version","last 1 safari version"]
}

这里指定了一个对象,里面定义了生产环境和开发环境的浏览器要求。上面的 development 就是指定开发环境中支持最后一个版本的 chrome、Firefox、safari 浏览器。这个属性是不同的前端工具之间共用目标浏览器和 node 版本的配置工具,被很多前端工具使用,比如 Babel、Autoprefixer 等。

http://www.lryc.cn/news/216421.html

相关文章:

  • Docker(2)——Docker镜像的基本命令
  • IT技术发展背景下的就业趋势:哪个领域最受欢迎?
  • 日本移动支付Merpay QA团队的自动化现状
  • EasyExcel复杂表头数据导入
  • 【Redis】Redis安装教程基本操作语法
  • spring-boot-autoconfigure.jar/META-INF/spring.factories介绍
  • vue3视频大小适配浏览器窗口大小
  • Nignx安装负载均衡动静分离以及Linux前端项目部署将域名映射到特定IP地址
  • Plist编辑软件 PlistEdit Pro mac中文版功能介绍
  • CSS3网页布局基础
  • 【npm run dev 报错:error:0308010C:digital envelope routines::unsupported】
  • Vue3.0 this,ref , $parent,$root组件通信 :VCA
  • 天猫商品评论API接口(评论内容|日期|买家昵称|追评内容|评论图片|评论视频..)
  • redis数据库简介
  • 数据结构 - ArrayList - 动态修改的数组
  • python爬虫实战——今日头条新闻数据获取
  • ardupilot开发 --- gdb 篇
  • 在Vue项目中定义全局变量
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • 大促期间如何监测竞品数据
  • Linux yum 没有可用软件包 fping。 错误:无须任何处理 的解决办法
  • 人工智能与脑机接口:开启人机融合的新时代
  • 【多线程面试题二十二】、 说说你对读写锁的了解
  • Panda3d 相机控制
  • Linux(CentOS)安装MySQL教程
  • 使用 OpenSSL 工具撰写 Bash 脚本进行密码明文的加密与解密
  • uniapp之actionsheet 自定义组件
  • 在nodejs中使用Mongoose和MongoDB实现curd操作
  • 10.28 校招 实习 内推 面经
  • Azure 机器学习 - 使用无代码 AutoML 训练分类模型