日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

npm中package.json详解

發布時間:2023/12/10 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 npm中package.json详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通常我們使用npm init命令來創建一個npm程序時,會自動生成一個package.json文件。package.json文件會描述這個NPM包的所有相關信息,包括作者、簡介、包依賴、構建等信息,格式是嚴格的JSON格式。
常用命令

npm i --save packageName 安裝依賴包

npm i --save-dev packageName

npm i webpack@1.2.1 安裝指定版本的包,版本號用@符號連接

屬性介紹

name

name和version是package.json中最重要的兩個字段,也是發布到NPM平臺上的唯一標識,如果沒有正確設置這兩個字段,包就不能發布和被下載。

version

包的版本號。如"1.0.0"。

description

包的描述信息,將會在npm search的返回結果中顯示,以幫助用戶選擇合適的包。

keywords

包的關鍵詞信息,是一個字符串數組,同上也將顯示在npm search的結果中。

homepage

包的主頁地址。

bugs

包的bug跟蹤主頁地址。

license

包的開源協議名稱。

author

包的作者。

contributors, maintainers

包的貢獻者,是一個數組。

files(較少用)

包所包含的所有文件,可以取值為文件夾。通常我們還是用.npmignore來去除不想包含到包里的文件。

main

包的入口文件。

bin(較少用)

如果你的包里包含可執行文件,通過設置這個字段可以將它們包含到系統的PATH中,這樣直接就可以運行,很方便。

man(較少用)

為系統的man命令提供幫助文檔。幫助文件的文件名必須以數字結尾,如果是壓縮的,需要以.gz結尾。

"man": ["./man/foo.1", "./man/bar.1", "./man/foo.2" ]

directories(較少用)

CommonJS包所要求的目錄結構信息,展示項目的目錄結構信息。字段可以是:lib, bin, man, doc, example。值都是字符串。

repository

包的倉庫地址。

"repository": {"type": "git","url": "git+https://github.com/rainnaZR/es6-react.git"},

scripts

通過設置這個可以使NPM調用一些命令腳本,封裝一些功能。

"scripts": {"start": "babel-node src/pages/index.js","build": "webpack --config config/webpack.config.js","watch": "webpack-dev-server --config config/webpack.config.js --hot --inline --progress"}

config

添加一些設置,可以供scripts讀取用,同時這里的值也會被添加到系統的環境變量中。

"config": {"port": "8080" }

npm start的時候會讀取到npm_package_config_port環境變量。

dependencies

指定依賴的其它包,這些依賴是指包發布后正常執行時所需要的,也就是線上需要的包。使用下面的命令來安裝:

npm install --save packageName

如果是開發中依賴的包,可以在devDependencies設置。

devDependencies

這些依賴只有在開發時候才需要。使用下面的命令來安裝:

npm install --save-dev packageName

peerDependencies

相關的依賴,如果你的包是插件,而用戶在使用你的包時候,通常也會需要這些依賴(插件),那么可以將依賴列到這里。

如karma, 它的package.json中有設置,依賴下面這些插件:

"peerDependencies": {"karma-jasmine": "~0.1.0","karma-requirejs": "~0.2.0","karma-coffee-preprocessor": "~0.1.0","karma-html2js-preprocessor": "~0.1.0","karma-chrome-launcher": "~0.1.0","karma-firefox-launcher": "~0.1.0","karma-phantomjs-launcher": "~0.1.0","karma-script-launcher": "~0.1.0" }

bundledDependencies

綁定的依賴包,發布的時候這些綁定包也會被一同發布。

optionalDependencies(較少用)

即使這些依賴沒有,也可以正常安裝使用。

engines(較少用)

指定包運行的環境。

"engines": {"node": ">=0.10.3 < 0.12","npm": "~1.0.20" }

os(較少用)

指定你的包可以在哪些系統平臺下運行。

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

cpu(較少用)

可以指定包運行的cpu架構。

private

設為true這個包將不會發布到NPM平臺下。

publishConfig(較少用)

這個字段用于設置發布時候的一些設定。尤其方便你希望發布前設定指定的tag或registry。

如下:

{"name": "react","version": "1.0.0","description": "Command line instructions","keywords": ["react","es6","react with es6"],"homepage": "https://github.com/rainnaZR/es6-react","bugs": {"url": "https://github.com/rainnaZR/es6-react","email": "111@163.com"},"license": "ISC","author": "ZRainna","main": "src/pages/index.js","directories": {"tests": "tests","lib":"lib","docs":"docs"},"repository": {"type": "git","url": "git+https://github.com/rainnaZR/es6-react.git"},"scripts": {"start": "babel-node src/pages/index.js","build": "webpack --config config/webpack.config.js","watch": "webpack-dev-server --config config/webpack.config.js --hot --inline --progress"},"babel": {"presets": ["es2015-node5"]},"devDependencies": {"webpack": "^1.13.2","webpack-dev-server": "^1.16.1"},"dependencies": {"babel-loader": "^6.2.5","babel-preset-es2015": "^6.14.0","babel-preset-react": "^6.11.1","react": "^15.3.2","react-dom": "^15.3.2","react-redux": "^4.4.5","react-router": "^2.8.1","redux": "^3.6.0"} }

總結

以上是生活随笔為你收集整理的npm中package.json详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。