大家好,我是林三心,用最通俗易懂的話講最難的知識點(diǎn)是我的座右銘,基礎(chǔ)是進(jìn)階的前提是我的初心~xYc28資訊網(wǎng)——每日最新資訊28at.com
背景
我們現(xiàn)在開發(fā)項(xiàng)目都是需要配合node + npm的,那么你的項(xiàng)目目錄中肯定會存在一個packages.json這個文件xYc28資訊網(wǎng)——每日最新資訊28at.com
packages.json這個文件中有很多的字段,但是其實(shí)很多開發(fā)者只知道那幾個字段的意思:xYc28資訊網(wǎng)——每日最新資訊28at.com
- version:版本號
- dependencies:生產(chǎn)依賴
- devDependencies:開發(fā)依賴
其他就一概不知了,但是如果你想要實(shí)現(xiàn)前端進(jìn)階的話,前端工程化是繞不過去的一環(huán),而packages.json則是前端工程化中重要的一部分!xYc28資訊網(wǎng)——每日最新資訊28at.com
必需字段
- name: 定義你的項(xiàng)目的名稱,不能使用.或_開頭,并且不能包含大寫字母
- version: 定義你的項(xiàng)目的版本號,格式為 :大版本號.次版本號.修訂號
描述字段
- description: 項(xiàng)目的描述
- keywords: 項(xiàng)目的關(guān)鍵詞,會在 NPM 文檔上顯示
- author: 項(xiàng)目的作者
- contributors: 項(xiàng)目的貢獻(xiàn)者
- homepage: 項(xiàng)目的主頁地址,一般放 github 的地址
- repository: 項(xiàng)目的源碼地址,一般放 github 的地址
- bug: 項(xiàng)目提交問題的地址
- funding: 項(xiàng)目捐贈支持的地址
依賴字段
- dependencies: 生產(chǎn)依賴
- devDependencies: 開發(fā)依賴
- peerDependencies: 對等依賴,比如你開發(fā)一個庫需要依賴vue,你的項(xiàng)目也需要依賴vue,這個時候peerDependencies里的vue就會忽略安裝,提高安裝效率
- peerDependenciesMeta: 對等依賴標(biāo)記
- engines: 聲明對 npm 或 node 的版本要求
- workspaces: 單代碼庫管理多個子項(xiàng)目,pnpm 的 workspace 就是依賴了這個字段
腳本字段
- scripts: 放一些項(xiàng)目運(yùn)行的命令,比如 start、dev、build、prepare、test等等
- config: 項(xiàng)目的一些配置,比如設(shè)置環(huán)境變量
入口 & 文件 & 類型 字段
- bin: 定義命令行執(zhí)行的文件
- main: 指定你項(xiàng)目的入口文件
- module: 指定項(xiàng)目的 esmodule 入口文件
- browser: 指定瀏覽器引入時使用的入口文件(umd)
- types: 指定項(xiàng)目的類型聲明文件(.d.ts)
- type: 一般要設(shè)置成 module,項(xiàng)目才能使用 esmodule 語法
- exports: 當(dāng)打包工具支持exports字段時(webpack、Rollup 等),以上main,browser,module,types四個字段都被忽略
"exports": { ".": { "import": "./dist/index.esm.js", "require": "./dist/index.cjs.js", "browser": "./dist/index.umd.js", "types": "./dist/index.d.ts" }}
"." 表示默認(rèn)導(dǎo)出xYc28資訊網(wǎng)——每日最新資訊28at.com
"import": 指定了 ES module (ESM) 規(guī)范下的導(dǎo)出文件路徑xYc28資訊網(wǎng)——每日最新資訊28at.com
"require": 指定了 CommonJS 規(guī)范下的導(dǎo)出文件路徑xYc28資訊網(wǎng)——每日最新資訊28at.com
"browser": 指定了用于瀏覽器環(huán)境的導(dǎo)出文件路徑xYc28資訊網(wǎng)——每日最新資訊28at.com
"types": 指定了類型聲明文件的路徑xYc28資訊網(wǎng)——每日最新資訊28at.com
發(fā)包字段
- files: 指明哪些文件需要發(fā)包到 NPM 上
- private: 設(shè)置是否要發(fā)到私有庫上,發(fā)公共庫的話 false
- publishConfig: 指定發(fā)包到某個位置
- os: 指定你的包適用于什么操作系統(tǒng)
- cpu: 與 os 類似
- license: 指定你的包的開源協(xié)議,各個協(xié)議允許做什么事情,如下圖
圖片xYc28資訊網(wǎng)——每日最新資訊28at.com
第三方字段(非官方)
- eslintConfig: eslint配置,但是現(xiàn)在都不用這個區(qū)配置了,都是用 .eslintrc
- babel: babel配置,現(xiàn)在不用了,都用 .babelrc
- unpkg: 指定通過 cdn 使用你的包的時候的入口文件
- lint-staged: 一般配合 githooks 一起對暫存區(qū)的文件進(jìn)行代碼校驗(yàn)
- browserslist: 告知支持哪些瀏覽器
- sideEffects: 說明項(xiàng)目是否有副作用,配合 webpoack 或者 rollup進(jìn)行 tree-shaking
圖片xYc28資訊網(wǎng)——每日最新資訊28at.com
xYc28資訊網(wǎng)——每日最新資訊28at.com
本文鏈接:http://m.www897cc.com/showinfo-26-70429-0.html簡述 packages.json 中 41 個常用的配置字段,了解一下還挺有用
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: Python 實(shí)現(xiàn)定時任務(wù)的九種方案
下一篇: C++實(shí)現(xiàn)多功能計(jì)算器
標(biāo)簽: