-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
package.json 详解 #10
Comments
可以使用depcheck检查当前项目的依赖是否被使用 npx depcheck |
package-lock.json 这个文件是安装依赖时自动生成的文件。 这个文件的好处:
可以使用 |
如果项目开发不严格,开发人员可能会引用未在 package.json 中定义的依赖,也就是 解决办法:
|
可以使用 npm version [patch|minor|major] 命令增减版本号
当执行
当 package-lock.json 不符合 package.json 的范围时,重新下载时会更新package-lock.json |
npm 版本标识
|
npm包的版本可以进行废弃
注意: 包和版本用@进行连接,如果存在空格,就会让整个仓库废弃 取消废弃
|
npx 的原理npx 会检查 node_modules/.bin 目录和环境变量,调用相关命令。如果相关依赖没有下载的话,会下载到一个临时目录,不会影响到当前目录,也不会下载到全局。 npm package 可以在 package.json 中指定 bin 属性,定义命令的名称 和具体的 文件,一般是带有 shebang 的 nodejs 脚本。npm 在下载时,如果是 windows 平台,则会生成 .ps1 和 .cmd 文件,linux 和 mac 则会使用源文件。 npm init
npm init 用于项目初始化,加-y 参数可以生成一份默认的package.json npm init 运行时,会用npm exec 执行 create- 这个npm package 的 bin 命令 npm init foo -> npm exec create-foo
npm init @usr/foo -> npm exec @usr/create-foo |
package.json 作为 Node.js 包管理的配置文件,平时使用的频率太高了。但是对于其中有些字段的含义一直没有进行系统的学习。
因此特意记录下 各个字段的意义和功能,参考文档:https://docs.npmjs.com/cli/v8/configuring-npm/package-json
name
应用名,包名。可以在前面使用 @xx/xx, 标识 scope
version
版本号,可以参考 #10 (comment)
description
描述
keywords
关键词数组,用于 搜索
homepage
包首页,文档或者github
bugs
一般可以 issue 地址, npm bug 可以打开该地址
license
许可协议
author
作者信息
files
包所包含的文件
bin
声明后,用户下载时在bin目录会增加一个 对应的 可执行shell,对应的js 需要加上 shebang
scripts
可以用来定义命令,用来 npm run 进行使用。除了用户自定义,也包含生命周期。
我在使用 husky 时就会使用 prepare ,在每次下载时,执行 prepare 对应的脚本
总共有 : prepare, prepublish, prepublishOnly, prepack, postpack
dependencies
os
支持的系统
cpu
支持的CPU
workspace
monorepo 设置
type
标识是 esm还是 commonjs
main
main 是 npm package 的入口文件,当我们使用 CommonJS 导入包时,实际上导入的是 main 所指向的文件
module
moduele 是ESM 导入时的寻找字段,若没有则引入 main 字段。所以一般库 CommonJS 放在 main, ESM 放在 module 字段
exports
exports 描述了子目录的访问路径,如果定义了 exports ,那么不在 exports 的模块,用路径也无法访问。
engines
engines 指定了当前项目所需要的环境,例如声明 node 最小版本,如果本地环境与版本不匹配,则会进行报错
browser
在浏览器使用时,标识使用哪个文件
The text was updated successfully, but these errors were encountered: