package.json的配置

package.json的配置参考

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

以下是一些常见的 package.json配置项:

{  
  "name": "my-project", // 项目名称,遵循npm的命名规范
  "private":true,//如果设置为 true,npm 将拒绝发布此包。
  "version": "1.0.0", // 项目版本号,遵循semver规范  
  "description": "A short description of your project", // 项目描述  
  "main": "index.js", // 项目的入口文件  
  "bin": {  
    "my-cli": "./bin/my-cli.js" // 如果你想让npm install -g全局安装后,可以通过命令行直接运行某个文件,可以在这里配置  
  },  
  "scripts": {  
    "start": "node index.js", // 启动项目的命令  
    "test": "jest", // 测试命令  
    "lint": "eslint .", // 代码风格检查命令  
    "build": "webpack --config webpack.prod.js", // 构建生产环境的命令  
    "dev": "webpack serve --config webpack.dev.js" // 开发服务器启动命令  
  },  
  "dependencies": {  
    "express": "^4.17.1", // 项目运行所依赖的模块  
    "axios": "^0.21.1" // 其他依赖模块  
  },  
  "devDependencies": {  
    "jest": "^27.0.0", // 开发依赖的测试框架  
    "eslint": "^7.0.0", // 开发依赖的代码风格检查工具  
    "webpack": "^5.0.0", // 开发依赖的打包工具  
    "webpack-cli": "^4.0.0", // webpack的命令行工具  
    "webpack-merge": "^5.0.0" // 用于合并webpack配置文件  
  },  
  "peerDependencies": {  
    "react": "^17.0.0" // 同等依赖,表示你的包需要和其他包一起使用,且版本需要匹配  
  },  
  "optionalDependencies": {  
    "fsevents": "^2.0.0" // 可选依赖,如果无法安装则不会报错  
  },  
  "engines": {  
    "node": ">=14.0.0", // 项目所依赖的Node.js版本范围  
    "npm": ">=6.0.0" // 项目所依赖的npm版本范围  
  },  
  "browserslist": [  
    "> 0.2%", // 目标浏览器版本范围  
    "not dead", // 不包括已经废弃的浏览器  
    "not ie <= 11" // 不包括IE 11及以下版本  
  ],  
  "files": [  
    "dist", // 发布的npm包中包含的文件和目录  
    "src"  
  ],  
  "author": "Your Name <your.email@example.com>", // 作者信息  
  "license": "ISC", // 许可证信息  
  "repository": {  
    "type": "git",  
    "url": "git+https://github.com/your-username/my-project.git" // 项目仓库地址  
  },  
  "bugs": {  
    "url": "https://github.com/your-username/my-project/issues" // 项目问题跟踪地址  
  },  
  "homepage": "https://github.com/your-username/my-project#readme", // 项目主页或文档地址  
  "keywords": [  
    "example",  
    "project" // 项目的关键词列表  
  ],  
  "publishConfig": {  
    "registry": "https://your-custom-registry.com" // 自定义的npm仓库地址  
  },  
  "config": {  
    "port": "8080" // 自定义配置,可以通过npm_package_config_port在代码中获取  
  },  
  "directories": {  
    "lib": "lib", // 指示库文件的位置  
    "test": "test" // 指示测试文件的位置  
  },  
  "types": "./index.d.ts", // TypeScript的类型定义文件  
  "workspaces": [  
    "packages/*" // 如果你的项目是一个monorepo,这里可以配置工作区的位置  
  ],  
  // 其他可能的配置项...  
}
配置具体描述:
  1. name

    • 项目的名称。
    • 名称的长度应小于或等于 214 个字符。
    • 不能以点(.)或下划线(_)开头。
    • 不能包含大写字母(因为 npm 包的 URL 是基于这个名称生成的)。
    • 名称应尽可能简短且语义化。
  2. version

    • 项目的版本号,遵循语义化版本规范(semver)。
  3. description

    • 项目的简短描述。
  4. main

    • 项目的入口文件,通常是 JavaScript 文件。
    • 当其他文件通过 require() 引入你的项目时,会加载这个文件。
  5. scripts

    • 项目的 npm 脚本,可以包含各种启动、测试、构建等命令。
  6. dependencies

    • 项目运行所依赖的模块列表。
    • 这些依赖会被安装到生产环境。
  7. devDependencies

    • 项目开发过程中需要的依赖,但不会在生产环境中使用。
  8. peerDependencies

    • 同等依赖,表示你的包需要和其他包一起使用,且版本需要匹配。
  9. optionalDependencies

    • 可选依赖,如果无法安装则不会报错。
  10. engines

    • 指定项目所依赖的 Node.js 和 npm 的版本范围。
  11. browserslist

    • 指定项目的目标浏览器版本,用于工具如 Autoprefixer、Babel 等。
  12. bin

    • 指定可执行文件的位置,以便 npm install -g 时可以全局安装。
  13. files

    • 指定在发布 npm 包时需要包含的文件列表。
  14. author

    • 项目的作者信息。
  15. license

    • 项目的许可证信息,如 MIT、BSD 等。
  16. repository

    • 项目的仓库地址,如 GitHub 仓库。
  17. bugs

    • 项目问题提交地址,通常是 GitHub issue 页面的链接。
  18. homepage

    • 项目的主页或文档地址。
  19. keywords

    • 项目的关键词列表,用于 npm 搜索。
  20. publishConfig

    • 发布时使用的配置,如自定义的 npm 仓库地址。
  21. config

    • 用于配置脚本中使用的环境变量。
  22. directories

    • 指定项目目录的用途,如 lib 表示库文件的位置,test 表示测试文件的位置。
  23. typestypings

    • 对于 TypeScript 项目,指定类型定义文件的位置。
  24. workspaces

    • 对于 monorepo(多包仓库),指定工作区的位置。
  25. private

    • 如果设置为 true,npm 将拒绝发布此包。
  26. sideEffects

    • 对于 webpack 等打包工具,指定模块是否有副作用(即是否每次导入时都需要执行)。
  27. os

    • 指定模块可以在哪些操作系统上运行。
  28. cpu

    • 指定模块可以在哪些 CPU 架构上运行。
  29. exports

    • 定义一个包的子路径的入口点,允许其他包使用更细粒度的导入语句。
  30. module

    • 指定 ES6 模块入口点,用于支持 ES6 模块的打包工具。
  31. browser

    • 指定在浏览器环境中使用的入口点。
  32. unpkgjsdelivr

    • 指定用于通过 unpkg 或 jsdelivr CDN 服务的文件路径。
  33. resolutions

    • 用于覆盖依赖项中的特定子依赖项的版本。
  34. bundleDependenciesbundledDependencies

    • 列出在发布包时应该被打包的依赖项。
  35. man

    • 指定 man 手册文件的位置。
  36. contributors

    • 项目的贡献者列表。
  37. funding

    • 指定项目的资金赞助信息。
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值