package.json配置詳解

package.json文件

執行 npm init 命令,會在當前目錄生成一個 package.json 文件

這個文檔是你需要知道的關于你的 package.json 文件中需要什么的所有信息。它必須是實際的 JSON,而不僅僅是一個 JavaScript 對象文字。

//package.json
{//如果你打算發布你的包,在你的package.json中最重要的事情是名稱和版本字段,因為它們是必需的。名稱和版本一起構成了一個標識符,該標識符被認為是完全唯一的。對軟件包的更改應與對版本的更改一起沿著。// 如果您不打算發布您的軟件包,則名稱和版本字段是可選的。"name": "axios","version": "1.7.2",// 在里面加上描述。這是一個字符串。這有助于人們發現您的軟件包,因為它在npm search中列出。"description": "Promise based HTTP client for the browser and node.js",// 把關鍵字放進去。這是一個字符串數組。這有助于人們發現您的軟件包,因為它在npm search中列出。"keywords": ["xhr","http","ajax","promise","node"],// 項目主頁的URL。"homepage": "https://axios-http.com",// 您的項目問題跟蹤器的URL和/或應向其報告問題的電子郵件地址。這些對遇到您的軟件包問題的人很有幫助。"bugs": {"url": "https://github.com/axios/axios/issues","email": "project@hostname.com"},// 你應該為你的軟件包指定一個許可證,這樣人們就知道他們可以如何使用它,以及你對它的任何限制。"license": "MIT",//  "license": "BSD-3-Clause"//  "license": "(ISC OR GPL-3.0)"//  "license": "SEE LICENSE IN <filename>"//作者 人員字段,email和url都是可選的。"author": "Barney Rubble","email": "b@rubble.com","url": "http://barnyrubble.tumblr.com/",//  "author": "Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"// 資金"funding": {"type": "individual","url": "http://example.com/donate"},// main字段是一個模塊ID,它是程序的主要入口點。如果未設置main,則默認為包根文件夾中的index.js。"main": "index.js",// 如果你的模塊是要在客戶端使用的,那么應該使用瀏覽器字段而不是主字段。這有助于提示用戶它可能依賴于Node.js模塊中不可用的原語。// browser 字段提供對瀏覽器環境更友好的模塊入口。"browser": {"./lib/adapters/http.js": "./lib/helpers/null.js","./lib/platform/node/index.js": "./lib/platform/browser/index.js","./lib/platform/node/classes/FormData.js": "./lib/helpers/null.js"},
//   很多軟件包都有一個或多個可執行文件,他們想安裝到PATH中。npm使這變得非常容易(事實上,它使用此功能來安裝“npm”可執行文件。)
// 要使用這個,請在package.json中提供一個bin字段,它是命令名到本地文件名的映射。當這個軟件包被全局安裝時,該文件將被鏈接到全局bins目錄中,或者將創建一個cmd(Windows命令文件)來執行bin字段中的指定文件,因此它可以由name或name.cmd(在Windows PowerShell上)運行。當這個包作為一個依賴項安裝在另一個包中時,這個文件將被鏈接到這個包中,它可以直接通過npm exec或通過其他腳本中的名稱在通過npm run-script調用它們時使用。"bin": {"myapp": "bin/cli.js","axios": "bin/api.js"},// 指定代碼所在的位置。這對那些想做貢獻的人很有幫助。如果git repo在GitHub上,那么npm repo命令就可以找到你。"repository": {"type": "git","url": "https://github.com/axios/axios.git"},// 腳本"scripts": {"start": "node ./sandbox/server.js","build": "gulp clear && cross-env NODE_ENV=production rollup -c -m","examples": "node ./examples/server.js",},// “config”對象可用于設置在升級過程中持續存在的包腳本中使用的配置參數。"config": {"port": "8080",},// 依賴// dependencies字段中聲明的是項目的生產環境中所必須的依賴包。當使用 npm 或 yarn 安裝npm包時,該npm包會被自動插入到此配置項中"dependencies": {"foo": "1.0.0 - 2.9999.9999","bar": ">=1.0.2 <2.1.2","baz": ">1.0.2 <=2.3.4","boo": "2.0.1",//完全等于"qux": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0","asd": "http://asdf.com/asdf.tar.gz","elf": "~1.2.3",//相似版本"two": "2.x",//"lat": "latest","antd": "^5.12.8","antd-img-crop": "^4.12.2","antd-style": "^3.6.1",// 本地路徑"bar": "file:../foo/bar",// 本地路徑 直接鏈接到項目下的ckeditor5目錄"ckeditor5-custom-build": "file:./ckeditor5",},// devDependencies中聲明的是開發階段需要的依賴包,如Webpack、Eslint、Babel等,用于輔助開發。它們不同于 dependencies,因為它們只需安裝在開發設備上,而無需在生產環境中運行代碼。當打包上線時并不需要這些包,所以可以把這些依賴添加到 devDependencies 中,這些依賴依然會在本地指定 npm install 時被安裝和管理,但是不會被安裝到生產環境中。"devDependencies": {},// 在某些情況下,你想表達你的包與宿主工具或庫的兼容性,而不一定要做這個宿主的require。這通常被稱為插件。
//   有些情況下,我們的項目和所依賴的模塊,都會同時依賴另一個模塊,但是所依賴的版本不一樣。比如,我們的項目依賴A模塊和B模塊的1.0版,而A模塊本身又依賴B模塊的2.0版。大多數情況下,這不是問題,B模塊的兩個版本可以并存,同時運行。但是,有一種情況,會出現問題,就是這種依賴關系將暴露給用戶。
// 最典型的場景就是插件,比如A模塊是B模塊的插件。用戶安裝的B模塊是1.0版本,但是A插件只能和2.0版本的B模塊一起使用。這時,用戶要是將1.0版本的B的實例傳給A,就會出現問題。因此,需要一種機制,在模板安裝的時候提醒用戶,如果A和B一起安裝,那么B必須是2.0模塊。
// peerDependencies字段就是用來供插件指定其所需要的主工具的版本。
// npm3.0版本開始 不會默認安裝了"peerDependencies": {"tea": "2.x"},// bundledDependencies配置項是一個數組,數組里可以指定一些模塊,這些模塊將在這個包發布時被一起打包。
// 需要注意,這個字段數組中的值必須是在dependencies, devDependencies兩個里面聲明過的包才行"bundledDependencies":[],//   如果需要在找不到包或者安裝包失敗時,npm仍然能夠繼續運行,則可以將該包放在optionalDependencies對象中,optionalDependencies對象中的包會覆蓋dependencies中同名的包,所以只需在一個地方進行設置即可。
// 需要注意,由于optionalDependencies中的依賴可能并為安裝成功,所以一定要做異常處理,否則當獲取這個依賴時,如果獲取不到就會報錯。"optionalDependencies":{},// 引擎// 當我們維護一些舊項目時,可能對npm包的版本或者Node版本有特殊要求,如果不滿足條件就可能無法將項目跑起來。為了讓項目開箱即用,可以在engines字段中說明具體的版本號// 需要注意,engines只是起一個說明的作用,即使用戶安裝的版本不符合要求,也不影響依賴包的安裝"engines": {"node": ">=0.10.3 <15","npm": "~1.0.20"},// 操作系統"os": ["darwin", "linux","!win32"],//"cpu": ["x64", "ia32","!arm", "!mips"],// 如果你在package.json中設置了"private": true,那么npm將拒絕發布它。"private": true,"types": "index.d.ts","type": "module",//支持使用es module
}

詳細字段描述:https://docs.npmjs.com/cli/v10/configuring-npm/package-json

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39680.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39680.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39680.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用vue動態給同一個a標簽添加內容 并給a標簽設置hover,懸浮文字變色,結果鼠標懸浮有的字上面不變色

如果Vue的虛擬DOM更新機制導致樣式更新不及時&#xff0c;你可以嘗試以下幾種方法來解決這個問題&#xff1a; 確保使用響應式數據&#xff1a; 確保你使用的數據是響應式的&#xff0c;并且任何對這些數據的更改都會觸發視圖的更新。在Vue中&#xff0c;你應該使用data對象中的…

多源BFS——AcWing 173. 矩陣距離

多源BFS 定義 多源BFS&#xff08;多源廣度優先搜索&#xff09;是一種圖遍歷算法&#xff0c;它是標準BFS&#xff08;廣度優先搜索&#xff09;的擴展&#xff0c;主要用于解決具有多個起始節點的最短路徑問題。在多源BFS中&#xff0c;不是從單一源點開始搜索整個圖&#…

怎么把webp格式轉換成jpg?5個圖片格式轉換方法全面解析(2024最新)

webp 圖片常用于網站&#xff0c;可顯著改善頁面的瀏覽和加載體驗。然而&#xff0c;許多設備&#xff08;如蘋果手機設備、安卓手機等&#xff09;不支持webp文件。在這些設備上查看webp文件時&#xff0c;最佳做法是將其轉換為其他常見格式&#xff0c;如jpg或 png。Windows電…

LeetCode 69. x 的平方根

更多題解盡在 https://sugar.matrixlab.dev/algorithm 每日更新。 組隊打卡&#xff0c;更多解法等你一起來參與哦&#xff01; LeetCode 69. x 的平方根 &#xff0c;難度簡單。 暴力 解題思路&#xff1a;直接遍歷平方 i&#xff0c; 判斷 x 是否滿足 i 2 ≤ x < ( i …

2024上海大學生程序設計競賽I-六元組計數原根知識詳解

以前基本沒有了解原根相關的一塊內容&#xff0c;最近正好碰到了這個題&#xff0c;于是寫一篇博客記錄一下。 這道題的總體思路就是比較明顯&#xff0c;就是先算出 a p x a^px apx對于每個 x x x的解的個數&#xff0c;然后NTT算一下即可。 先來講一下怎么求歐拉函數 ? ( …

前端FCP指標優化

優化前 第三方依賴按需引入之后&#xff0c;打包的總體積減小到初始值的55%&#xff0c;但是依然存在很大的js文件&#xff0c;需要繼續優化 chunk-vendors.js進行分包之后 截圖 compression-webpack-plugin壓縮之后 截圖

簡單制作基礎的Python鏡像

拉取基礎鏡像 以Ubuntu24示例 docker pull ubuntu:24.04 啟動 docker run -it -d --name ubuntu24 ubuntu:24.04 進入docker docker exec -it ubuntu24 /bin/bash 更新依賴 apt update apt full-upgrade 安裝pip 會自動安裝python3.11.7 apt install pip 支持中文…

55、Flink 中使用 Java Lambda 表達式詳解

1&#xff09;概述 1.注意 Flink 支持對 Java API 的所有算子使用 Lambda 表達式&#xff0c;但是&#xff0c;當 Lambda 表達式使用 Java 泛型時&#xff0c;需要 顯式 地聲明類型信息。 2.示例和限制 示例&#xff1a; map() 函數使用 Lambda 表達式計算輸入值的平方。 …

大學新生人工智能學習路線規劃

1. 引言 七月來臨&#xff0c;各省高考分數已揭榜完成。而高考的完結并不意味著學習的結束&#xff0c;而是新旅程的開始。對于有志于踏入IT領域的高考少年們&#xff0c;這個假期是開啟探索IT世界的絕佳時機。作為該領域的前行者和經驗前輩&#xff0c;我愿意為準新生們提供一…

基于Hadoop平臺的電信客服數據的處理與分析③項目開發:搭建基于Hadoop的全分布式集群---任務10:Hive安裝部署

任務描述 任務內容為安裝并配置在Hadoop集群中使用Hive。 任務指導 Hive是一個基于Hadoop的數據倉庫框架&#xff0c;在實際使用時需要將元數據存儲在數據庫中 具體安裝步驟如下&#xff1a; 1. 安裝MySQL數據庫&#xff08;已安裝&#xff09; 2. 解壓縮Hive的壓縮包 3…

剪映 v5.5 Pro Vip解鎖版:使用指南與注意事項

摘要&#xff1a;本文介紹了剪映Pro VIP解鎖版的使用方法&#xff0c;包括安裝、測試和使用VIP素材的步驟&#xff0c;以及如何避免誤報和保持解鎖狀態的建議。 正文&#xff1a; 剪映Pro是一款廣受歡迎的視頻編輯軟件&#xff0c;提供了豐富的視頻編輯功能和大量高質量的素材…

發送微信消息和文件

參考&#xff1a;https://www.bilibili.com/video/BV1S84y1m7xd 安裝&#xff1a; pip install PyOfficeRobotimport PyOfficeRobotPyOfficeRobot.chat.send_message(who"文件傳輸助手", message"你好&#xff0c;我是PyOfficeRobot&#xff0c;有什么可以幫助…

RabbitMQ中java實現隊列和交換機的聲明

java實現隊列和交換機的聲明 在之前我們都是基于RabbitMQ控制臺來創建隊列、交換機。但是在實際開發時&#xff0c;隊列和交換機是程序員定義的&#xff0c;將來項目上線&#xff0c;又要交給運維去創建。那么程序員就需要把程序中運行的所有隊列和交換機都寫下來&#xff0c;…

【PYG】 PyTorch中size方法和屬性

在 PyTorch 中&#xff0c;size 方法和屬性用于獲取張量的維度信息。下面是它們的用法和區別&#xff1a; node_features.size&#xff1a; 這是一個屬性&#xff08;attribute &#xff09;&#xff0c;返回一個 torch.Size 對象&#xff0c;表示張量的維度。這是不可調用的&a…

用MySQL+node+vue做一個學生信息管理系統(一):配置項目

先用npm init -y生成配置文件 在項目下新建src文件夾&#xff0c;app.js文件。src目錄用來放靜態資源文件&#xff0c;app.js是服務器文件&#xff0c;index.js是vue的入口文件 使用npm install express下載express框架 在app.js文件夾開啟node服務&#xff0c;監聽的端口為…

C++ //練習 14.29 為什么不定義const版本的遞增和遞減運算符?

C Primer&#xff08;第5版&#xff09; 練習 14.29 練習 14.29 為什么不定義const版本的遞增和遞減運算符&#xff1f; 環境&#xff1a;Linux Ubuntu&#xff08;云服務器&#xff09; 工具&#xff1a;vim 解釋&#xff1a; 遞增和遞減要改變對象本身&#xff0c;const類…

Go語言--運算符

算術運算符 關系運算符 不能寫0<a<10&#xff0c;要判斷必須0<a&&a<10。因為int和bool不兼容 邏輯運算符 位運算符 賦值運算符 其他 運算符的優先級

AcWing 1254:找樹根和孩子

【題目來源】https://www.acwing.com/problem/content/1256/【題目描述】 給定一棵樹&#xff0c;輸出樹的根root&#xff0c;孩子最多的結點max以及他的孩子。【輸入格式】 第一行&#xff1a;n&#xff0c;m&#xff0c;表示樹的節點數和邊數。 以下m行&#xff1a;每行兩個結…

浮點數在內存中的存儲結構

浮點數在內存中的存儲可以參考《IEEE754標準》https://people.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF 參考博文&#xff1a;IEEE754詳解&#xff08;最詳細簡單有趣味的介紹&#xff09;-CSDN博客 單精度float占內存4字節&#xff0c;最高位bit31表示符號位&…

國家海岸線變化評估:新英格蘭和中大西洋沿岸海岸線的歷史變化

National Assessment of Shoreline Change: Historical Shoreline Change along the New England and Mid-Atlantic Coasts 國家海岸線變化評估&#xff1a;新英格蘭和中大西洋沿岸海岸線的歷史變化 摘要 海灘侵蝕是美國許多公海沿岸的一個長期問題。隨著沿岸人口的不斷增加…