欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue package.json配置深入分析

 更新時間:2023年01月12日 15:00:32   作者:code_充電站  
這篇文章主要介紹了Vue package.json配置,package.json是每個前端項目都會有的json文件,位于項目的根目錄中。很多腳手架在創(chuàng)建項目的時候會幫我們自動初始化好 package.json

前言

package.json是每個前端項目都會有的json文件,位于項目的根目錄中。很多腳手架在創(chuàng)建項目的時候會幫我們自動初始化好 package.json。package.json有許多配置與項目息息相關,了解他們有助于對項目的開發(fā),上一篇文章已經(jīng)完成 package.json 的基礎配置的講解,接下來開始剩余部分的學習。

今天主要介紹一些常用的配置,分為了七大類,分別是:

  • 依賴配置
  • 發(fā)布配置
  • 系統(tǒng)配置
  • 第三方配置

一、依賴配置

項目開發(fā)過程中會依賴其他包,需要在 package.json 里配置這些依賴的信息。

dependencies

運行依賴,也就是項目生產(chǎn)環(huán)境下需要用到的依賴。比如 vue,vuex以及組件庫等。

使用 npm install xxx 或則 npm install xxx --save 時,會被自動插入到該字段中。

  "dependencies": {
    "element-plus": "^2.2.28",
    "pinia": "^2.0.28",
    "sass": "^1.57.1",
    "vite": "^4.0.3",
    "vue": "^3.2.45",
    "vue-router": "^4.1.6"
  },

devDependencies

開發(fā)依賴,項目開發(fā)環(huán)境需要用到而運行時不需要的依賴,用于輔助開發(fā),通常包括項目工程化工具比如 vite,eslint 等。

使用 npm install xxx -D 或者 npm install xxx --save-dev 時,會被自動插入到該字段中。

  "devDependencies": {
    "cz-git": "^1.4.1",
    "eslint": "^8.30.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-prettier": "^8.5.0",
    "eslint-define-config": "^1.12.0",
    "eslint-plugin-import": "^2.26.0",
    "eslint-plugin-prettier": "^4.2.1",
    "eslint-plugin-vue": "^9.8.0",
    "husky": "^8.0.0",
    "less": "^4.1.3",
    "lint-staged": "^13.1.0",
    "postcss-html": "^1.5.0",
    "postcss-less": "^6.0.0",
    "prettier": "^2.8.1",
    "stylelint": "^14.16.0",
    "stylelint-config-html": "^1.1.0",
  }

peerDependencies

同伴依賴是一種特殊的依賴,不會被自動安裝,通常用于表示與另一個包的依賴與兼容性關系來警示使用者。

optionalDependencies

可選依賴,表示依賴是可選的,它不會阻塞主功能的使用,安裝或者引入失敗也無妨。這類依賴如果安裝失敗,那么 npm 的整個安裝過程也是成功的。

使用 npm install xxx -O 或者 npm install xxx --save-optional 時,依賴會被自動插入到該字段中。

bundleDependencies

打包依賴。它的值是一個數(shù)組,在發(fā)布包時,bundleDependencies 里面的依賴都會被一起打包。

在執(zhí)行 npm pack 打包生成 tgz 壓縮包中,將出現(xiàn) node_modules 并包含 react 和 react-dom。

需要注意的是,這個字段數(shù)組中的值必須是在 dependencies,devDependencies 兩個里面聲明過的依賴才可以。普通依賴通常從 npm registry 安裝,但當你想用一個不在 npm registry 里的包,或者一個被修改過的第三方包時,打包依賴會比普通依賴更好用。

二、發(fā)布配置

主要是一些和項目發(fā)布有關的配置

private

如果是私有項目,不希望發(fā)布到公共 npm 倉庫上,可以將 private 設為 true。

"private": true

publishConfig

publishConfig 就是 npm 包發(fā)布時使用的配置。

比如在安裝依賴時指定了 registry 為 taobao 鏡像源,但發(fā)布時希望在公網(wǎng)發(fā)布,就可以指定 publishConfig.registry。

"publishConfig": {
  "registry": "https://registry.npmjs.org/"
}

三、系統(tǒng)配置

項目有關的系統(tǒng)配置,比如 node 版本或操作系統(tǒng)兼容性之類。但是值得注意的是這些要求只會起到提示警告的作用,即使用戶的環(huán)境不符合要求,也不影響安裝依賴包。

engines

一些項目由于兼容性問題會對 node 或者包管理器有特定的版本號要求,比如:要求 node 版本大于等于 12 且小于 16,同時 pnpm 版本號需要大于 7。

"engines": {
  "node": ">=12 <16",
  "pnpm": ">7"
}

os

在 linux 上能正常運行的項目可能在 windows 上會出現(xiàn)異常,使用 os 字段可以指定項目對操作系統(tǒng)的兼容性要求。

"os": ["darwin", "linux"]

cpu

指定項目只能在特定的 CPU 體系上運行。

"cpu": ["x64", "ia32"]

四、第三方配置

一些第三方庫或應用在進行某些內(nèi)部處理時會依賴這些字段,使用它們時需要安裝對應的第三方庫。

types或者typings

指定 TypeScript 的類型定義的入口文件

"types": "./index.ts",

browserslist

設置項目的瀏覽器兼容情況。babel 和 autoprefixer 等工具會使用該配置對代碼進行轉換。當然你也可以使用 .browserslistrc 單文件配置。

"browserslist": [
  "> 1%",
  "last 2 versions"
]

sideEffects

顯示設置某些模塊具有副作用,用于 webpack 的 tree-shaking 優(yōu)化。

比如在項目中整體引入 Ant Design 組件庫的 css 文件。

import 'antd/dist/antd.css'; 

如果 Ant Design 的 package.json 里不設置 sideEffects,那么 webapck 構建打包時會認為這段代碼只是引入了但并沒有使用,可以 tree-shaking 剔除掉,最終導致產(chǎn)物缺少樣式。

lint-staged

lint-staged 是用于對 git 的暫存區(qū)的文件進行操作的工具,比如可以在代碼提交前執(zhí)行 lint 校驗,類型檢查,圖片優(yōu)化等操作。

"lint-staged": {
  "src/**/*.{js,jsx,ts,tsx}": [
    "eslint --fix",
    "git add -A"
  ]
}

lint-staged 通常配合 husky 這樣的 git-hooks 工具一起使用。git-hooks 用來定義一個鉤子,這些鉤子方法會在 git 工作流程中比如 pre-commit,commit-msg 時觸發(fā),可以把 lint-staged 放到這些鉤子方法中。

五、結語

今天我們簡單了解了 package.json 的常見配置。有了這些知識,我們可以更好的了解項目。但 package.json 里的內(nèi)容遠不止如此,需要我們進一步學習。

到此這篇關于Vue package.json配置深入分析的文章就介紹到這了,更多相關Vue package.json內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺談webpack編譯vue項目生成的代碼探索

    淺談webpack編譯vue項目生成的代碼探索

    本篇文章主要介紹了淺談webpack編譯vue項目生成的代碼探索,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • vue3+ts+Vuex中使用websocket協(xié)議方式

    vue3+ts+Vuex中使用websocket協(xié)議方式

    這篇文章主要介紹了vue3+ts+Vuex中使用websocket協(xié)議方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • keep-alive組件的作用與原理分析

    keep-alive組件的作用與原理分析

    這篇文章主要介紹了keep-alive組件的作用與原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • vue react中的excel導入和導出功能

    vue react中的excel導入和導出功能

    當我們把信息化系統(tǒng)給用戶使用時,用戶經(jīng)常需要把以前在excel里錄入的數(shù)據(jù)導入的信息化系統(tǒng)里,這樣為用戶提供了很大的方便,這篇文章主要介紹了vue中或者react中的excel導入和導出,需要的朋友可以參考下
    2023-09-09
  • 解析VUE中nextTick是什么

    解析VUE中nextTick是什么

    nextTick是Vue提供的一個全局API,由于Vue的異步更新策略導致我們對數(shù)據(jù)的修改不會立刻體現(xiàn),在DOM變化上,此時如果想要立即獲取更新后的DOM狀態(tài),就需要使用這個方法,這篇文章主要介紹了解析VUE中nextTick,需要的朋友可以參考下
    2022-11-11
  • 關于vue項目vue-cli-service啟動報錯失敗問題的解決方法

    關于vue項目vue-cli-service啟動報錯失敗問題的解決方法

    前端拉取代碼后,想要運行代碼的時候可以能遇到啟動報錯的問題,這里我們只針對于vue-cli-service報錯項來說,文中通過圖文結合的方式給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-08-08
  • 詳解VUE的狀態(tài)控制與延時加載刷新

    詳解VUE的狀態(tài)控制與延時加載刷新

    本篇文章主要介紹了詳解VUE的狀態(tài)控制與延時刷新,實例分析了數(shù)據(jù)延時到展示的時候再去刷新的技巧,有興趣的可以了解一下。
    2017-03-03
  • 詳解vue中axios的封裝

    詳解vue中axios的封裝

    這篇文章大家分享了vue中axios的封裝的相關知識點以及實例代碼,有興趣的朋友參考學習下。
    2018-07-07
  • Vue模擬響應式原理底層代碼實現(xiàn)的示例

    Vue模擬響應式原理底層代碼實現(xiàn)的示例

    最近去面試的人都會有這個體會,去年面試官只問我怎么用vue,今年開始問我vue響應式原理,本文就詳細的介紹一下
    2021-08-08
  • Vue實現(xiàn)項目部署到非根目錄及解決刷新頁面時找不到資源

    Vue實現(xiàn)項目部署到非根目錄及解決刷新頁面時找不到資源

    這篇文章主要介紹了Vue實現(xiàn)項目部署到非根目錄及解決刷新頁面時找不到資源問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論