前端 JS 经典:package.json 属性详解

简介: 前端 JS 经典:package.json 属性详解

前言:package.json 里的字段大致分两部分,一部分标准字段,一部分非标字段。标准字段就是官方定义好的字段,非标字段包括作者自定义字段

1. 标准字段

1.1 name

包名,就是我们用 npm 去下载的名字,就定义在这。

{
  "name": "yqcoder-admin-ts"
}

1.2 version

版本,当前包的版本号

{
  "version": "0.0.0"
}

1.3 description

描述,描述这个包的主要用途

{
  "description": "this is a system"
}

1.4 main

入口文件,指定这个包的入口文件,如果不设置默认包根目录的 index.js 文件

{
  "main": "index.js"
}

1.5 files

指定包开发完成后上传到 npm 的文件。

{
  "files": ["index.js", "dist"]
}

1.6 repository

包上传后的仓库信息

{
  "repository": {
    "type": "git",
    "url": "xxxx/xx/xxx.git",
    "directory": "packages/xxx"
  }
}

1.7 keywords

npm 上的搜索关键字

{
  "keywords": ["admin"]
}

1.8 author

包作者

{
  "author": "Yqcoder"
}

1.9 license

提供开源许可类型

{
  "license": "MIT"
}

1.10 bugs

提交 issues 地址

{
  "bugs": "https://github.com/xxx/xxx"
}

1.11 homepage

展示一些官网首页

{
  "homepage": "https://github.com/xxxx"
}

1.12 dependencies

生产环境下需要用到的依赖

{
  "dependencies": {
    "@amap/amap-jsapi-loader": "^1.0.1"
  }
}

1.13 devDependencies

开发阶段时需要的依赖包,不需要在生产中使用

{
  "devDependencies": {
    "sass": "^1.70.0"
  }
}

1.14 scripts

终端脚本语言

{
  "scripts": {
    "dev": "vite",
    "build": "vue-tsc && vite build",
    "preview": "vite preview"
  }
}

2. 非标字段

2.1 module

给构建工具看的,在使用构建工具的情况下,去导入一个包,特别是使用 ESM 模块方法的时候,会把 module 设置的文件给你

{
  "module": "dist/xxxx.esm-bundler.js"
}

2.2 types

给 ts 看的,整个包的类型定义文件

{
  "types": "dist/xxx.d.ts"
}

2.3 unpkg

给 cdn 看的,有些用户导入包的时候会使用 CDN,在用这种方式导入的时候,CDN 会从 npm 上去下载相应的文件,从哪里下载?就从这个文件路径下载。

{
  "unpkg": "dist/xxx.global.js"
}

2.4 jsdelivr

给 cdn 看的

{
  "jsdelivr": "dist/xxx.global.js"
}

2.5 exports

给构架工具看的,在构建工具的环境中,你在导入包的时候有很多方式。

{
  "exports": {
    ".": {
      "types": "./dist/xxxx.d.ts"
    },
    "./*": "./*"
  }
}

2.6 sideEffects

给构建工具看的,标识下包有没有副作用

{
  "sideEffects": false
}

2.7 buildOptions

作者自定义,提供一些 rollup 的打包信息的。

{
  "buildOptions": {
    "name": "xxxx",
    "formats": ["esm-bunder"]
  }
}

3. vue 中的 package.json 文件

{
  "name": "vue",
  "version": "2.7.16",
  "packageManager": "pnpm@8.9.2",
  "description": "Reactive, component-oriented view layer for modern web interfaces.",
  "main": "dist/vue.runtime.common.js",
  "module": "dist/vue.runtime.esm.js",
  "unpkg": "dist/vue.js",
  "jsdelivr": "dist/vue.js",
  "typings": "types/index.d.ts",
  "files": [
    "src",
    "dist/*.js",
    "dist/*.mjs",
    "types/*.d.ts",
    "compiler-sfc",
    "packages/compiler-sfc"
  ],
  "exports": {
    ".": {
      "types": "./types/index.d.ts",
      "import": {
        "node": "./dist/vue.runtime.mjs",
        "default": "./dist/vue.runtime.esm.js"
      },
      "require": "./dist/vue.runtime.common.js"
    },
    "./compiler-sfc": {
      "types": "./compiler-sfc/index.d.ts",
      "import": "./compiler-sfc/index.mjs",
      "require": "./compiler-sfc/index.js"
    },
    "./dist/*": "./dist/*",
    "./types/*": ["./types/*.d.ts", "./types/*"],
    "./package.json": "./package.json"
  },
  "sideEffects": false,
  "scripts": {
    "dev": "rollup -w -c scripts/config.js --environment TARGET:full-dev",
    "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:runtime-cjs-dev",
    "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:runtime-esm",
    "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:server-renderer",
    "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:compiler ",
    "build": "node scripts/build.js",
    "build:ssr": "npm run build -- runtime-cjs,server-renderer",
    "build:types": "rimraf temp && tsc --declaration --emitDeclarationOnly --outDir temp && api-extractor run && api-extractor run -c packages/compiler-sfc/api-extractor.json",
    "test": "npm run ts-check && npm run test:types && npm run test:unit && npm run test:e2e && npm run test:ssr && npm run test:sfc",
    "test:unit": "vitest run test/unit",
    "test:ssr": "npm run build:ssr && vitest run server-renderer",
    "test:sfc": "vitest run compiler-sfc",
    "test:e2e": "npm run build -- full-prod,server-renderer-basic && vitest run test/e2e",
    "test:transition": "karma start test/transition/karma.conf.js",
    "test:types": "npm run build:types && tsc -p ./types/tsconfig.json",
    "format": "prettier --write --parser typescript \"(src|test|packages|types)/**/*.ts\"",
    "ts-check": "tsc -p tsconfig.json --noEmit",
    "ts-check:test": "tsc -p test/tsconfig.json --noEmit",
    "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js",
    "release": "node scripts/release.js",
    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s"
  },
  "gitHooks": {
    "pre-commit": "lint-staged",
    "commit-msg": "node scripts/verify-commit-msg.js"
  },
  "lint-staged": {
    "*.js": ["prettier --write"],
    "*.ts": ["prettier --parser=typescript --write"]
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/vuejs/vue.git"
  },
  "keywords": ["vue"],
  "author": "Evan You",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/vuejs/vue/issues"
  },
  "homepage": "https://github.com/vuejs/vue#readme",
  "dependencies": {
    "@vue/compiler-sfc": "workspace:*",
    "csstype": "^3.1.0"
  },
  "devDependencies": {
    "@babel/parser": "^7.23.5",
    "@microsoft/api-extractor": "^7.25.0",
    "@rollup/plugin-alias": "^3.1.9",
    "@rollup/plugin-commonjs": "^22.0.0",
    "@rollup/plugin-node-resolve": "^13.3.0",
    "@rollup/plugin-replace": "^4.0.0",
    "@types/he": "^1.1.2",
    "@types/node": "^20.10.3",
    "chalk": "^4.1.2",
    "conventional-changelog-cli": "^2.2.2",
    "cross-spawn": "^7.0.3",
    "enquirer": "^2.3.6",
    "esbuild": "^0.19.8",
    "execa": "^4.1.0",
    "he": "^1.2.0",
    "jasmine-core": "^4.2.0",
    "jsdom": "^19.0.0",
    "karma": "^6.3.20",
    "karma-chrome-launcher": "^3.1.1",
    "karma-cli": "^2.0.0",
    "karma-esbuild": "^2.2.5",
    "karma-jasmine": "^5.0.1",
    "lint-staged": "^12.5.0",
    "lodash": "^4.17.21",
    "marked": "^4.0.16",
    "minimist": "^1.2.6",
    "postcss": "^8.4.14",
    "prettier": "^2.6.2",
    "puppeteer": "^14.3.0",
    "rimraf": "^3.0.2",
    "rollup": "^2.79.1",
    "rollup-plugin-typescript2": "^0.32.0",
    "semver": "^7.3.7",
    "shelljs": "^0.8.5",
    "terser": "^5.14.0",
    "todomvc-app-css": "^2.4.2",
    "ts-node": "^10.8.1",
    "tslib": "^2.4.0",
    "typescript": "^4.8.4",
    "vitest": "^1.0.4",
    "yorkie": "^2.0.0"
  }
}
目录
打赏
0
0
1
0
16
分享
相关文章
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
206 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
126 8
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
2711 23
|
5月前
|
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
141 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
698 14
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
261 6
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
329 1
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
414 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问