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