欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

package.json文件怎么創(chuàng)建

這篇文章主要講解了“package.json文件怎么創(chuàng)建”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“package.json文件怎么創(chuàng)建”吧!

平南ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

了解package.json

每個(gè)項(xiàng)目(npm上下載的包,或者其他的nodejs項(xiàng)目)的根目錄下面,一般都有一個(gè)package.json文件, 定義了這個(gè)項(xiàng)目所需要的各種模塊,以及項(xiàng)目的配置信息(比如名稱、版本、許可證、如何啟動(dòng)項(xiàng)目、運(yùn)行腳本等元數(shù)據(jù))。npm install命令根據(jù)這個(gè)配置文件,自動(dòng)下載所需的模塊。

package.json文件就是一個(gè)JSON對象,該對象的每一個(gè)成員就是當(dāng)前項(xiàng)目的一項(xiàng)設(shè)置。比如name就是項(xiàng)目名稱,version是版本(遵守“大版本.次要版本.小版本”的格式)。還會(huì)在項(xiàng)目的生命周期中扮演多個(gè)角色、開發(fā)、測試、上線版本。

package.json的作用

  • 作為一個(gè)描述文件,描述了你的項(xiàng)目所依賴的包

  • 允許我們使用 “語義化版本規(guī)則”(后面介紹)指明你項(xiàng)目依賴包的版本

  • 讓你的構(gòu)建更好地與其他開發(fā)者分享,便于重復(fù)使用

package.json如何創(chuàng)建

1、使用命令行工具客戶端CLI

npm init

這將啟動(dòng)命令行調(diào)查問卷,該調(diào)查問卷將package.json在您啟動(dòng)命令的目錄中創(chuàng)建.

package.json文件怎么創(chuàng)建

2、創(chuàng)建默認(rèn)值

要獲取默認(rèn)值package.json,請npm init使用--yes or -y標(biāo)志運(yùn)行:

 npm init -y

此方法將package.json使用從當(dāng)前目錄中提取的信息生成默認(rèn)值, 跳過回答問題步驟 。

package.json文件怎么創(chuàng)建

3、手動(dòng)創(chuàng)建

直接在項(xiàng)目根目錄新建一個(gè) package.json 文件,然后輸入相關(guān)的內(nèi)容。 具體請查看下文package.json的注意事項(xiàng)。

package.json文件常見字段詳解

1、 name

必須字段 ,當(dāng)前模塊\包名稱, 長度必須小于等于214個(gè)字符,不能以"."(點(diǎn))或者"_"(下劃線)開頭,不能包含大寫字母。

這個(gè)名字可能會(huì)作為參數(shù)被傳入require(),所以它應(yīng)該比較短,但也要意義清晰。

2、 version

必須字段 ,當(dāng)前包的版本號(hào),初次建立默認(rèn)為1.0.0。

version必須可以被npm依賴的一個(gè)node-semver模塊解析 。定義了當(dāng)前項(xiàng)目的版本迭代進(jìn)度。  (遵守“大版本.次要版本.小版本”的格式)

可能現(xiàn)在很多小伙伴們沒有注意或者不在乎版本號(hào),更多使用產(chǎn)品的版本號(hào),或者git hashcode方式。

3、 description

可選字段,必須是字符串。當(dāng)前包的描述信息,是一個(gè)字符串。它可以幫助人們在使用npm search時(shí)找到這個(gè)包。

如果 package.json 中沒有 description 信息,npm 使用項(xiàng)目中的 README.md 的第一行作為描述信息。這個(gè)描述信息有助于別人搜索你的項(xiàng)目,因此建議好好寫 description 信息。

4、 main

可選字段, 指定了項(xiàng)目加載的入口文件。

這個(gè)字段的默認(rèn)值是模塊根目錄下面的index.js。

5、 scripts

可選字段,scripts是一個(gè)由腳本命令組成的hash對象,他們在包不同的生命周期中被執(zhí)行。key是生命周期事件,value是要運(yùn)行的命令。 指定了運(yùn)行腳本命令的npm命令行縮寫,比如start指定了運(yùn)行npm run start時(shí),所要執(zhí)行的命令。我們可以自定義我們想要的運(yùn)行腳本命令。

scripts配置執(zhí)行的腳本

  • 1)執(zhí)行命令 echo xxx

    1. 執(zhí)行node_modules/.bin  下的文件

為什么可以執(zhí)行呢?

當(dāng)我執(zhí)行 npm run的時(shí)候,就會(huì)自動(dòng)新建一個(gè) Shell,在這個(gè) Shell 里面執(zhí)行指定的腳本命令。因此,只要是 Shell(一般是 Bash)可以運(yùn)行的命令,就可以寫在 npm 腳本里面。會(huì)把當(dāng)前目錄下的node_modules/.bin也拷貝到當(dāng)前的系統(tǒng)的path(只是臨時(shí)拷貝,執(zhí)行結(jié)束后,在將PATH變量恢復(fù)原樣), 所以當(dāng)前目錄的node_modules/.bin子目錄里面的所有腳本,都可以直接用腳本名調(diào)用,而不必加上路徑。

例如:

我們用node執(zhí)行一個(gè)node.js服務(wù)是,node + 文件 可以用node server.js; 我們也可以用webpack的打包前端文件,webpack-dev-server,當(dāng)然webpack 和webpack-dev-server是要安裝依賴的模塊;

"scripts": {   
    "build": "webpack --mode=development",
    "dev": "webpack-dev-server --mode=development --contentBase=./dist",
    "server":"node app.js"
  }

我們在命令行工具中輸入npm run server ,就會(huì)調(diào)用node app.js幫我們運(yùn)行。

簡寫形式:

npm start是npm run start
npm stop是npm run stop的簡寫
npm test是npm run test的簡寫
npm restart是npm run stop && npm run restart && npm run start的簡寫

常用腳本-----網(wǎng)上收集轉(zhuǎn)

// 刪除目錄
"clean": "rimraf dist/*",

// 本地搭建一個(gè) HTTP 服務(wù)
"serve": "http-server -p 9090 dist/",

// 打開瀏覽器
"open:dev": "opener http://localhost:9090",

// 實(shí)時(shí)刷新
 "livereload": "live-reload --port 9091 dist/",

// 構(gòu)建 HTML 文件
"build:html": "jade index.jade > dist/index.html",

// 只要 CSS 文件有變動(dòng),就重新執(zhí)行構(gòu)建
"watch:css": "watch 'npm run build:css' assets/styles/",

// 只要 HTML 文件有變動(dòng),就重新執(zhí)行構(gòu)建
"watch:html": "watch 'npm run build:html' assets/html",

// 部署到 Amazon S3
"deploy:prod": "s3-cli sync ./dist/ s3://example-com/prod-site/",

// 構(gòu)建 favicon
"build:favicon": "node scripts/favicon.js",

"start": "cross-env NODE_ENV=production node server/index.js",

6、 dependencies、devDependencies

可選字段, dependencies字段指定了項(xiàng)目運(yùn)行所依賴的模塊 , devDependencies指定項(xiàng)目開發(fā)所需要的模塊 。

值指向一個(gè)對象。該對象的各個(gè)成員,分別由模塊名和對應(yīng)的版本要求組成,表示依賴的模塊及其版本范圍。

默認(rèn)創(chuàng)建的package.json沒有,當(dāng)我們安裝npm install一個(gè)模塊時(shí)就會(huì)生成。

npm install express
npm install express --save
npm install express --save-dev

上面代碼表示單獨(dú)安裝express模塊,

  • 后邊沒有參數(shù)時(shí),表示安裝到dependencies屬性,

  • --save參數(shù)表示將該模塊寫入dependencies屬性,

  • --save-dev表示將該模塊寫入devDependencies屬性。

7、bundledDependencies

可選字段,發(fā)布包時(shí)同時(shí)打包的其他依賴。

8、 peerDependencies

可選字段,兼容性依賴,如果你的項(xiàng)目或者模塊,同時(shí)依賴另一個(gè)模塊,但是所依賴的版本不一樣。

比如,你的項(xiàng)目依賴A模塊和B模塊的1.0版,而A模塊本身又依賴B模塊的2.0版。

{
  "name": "chai-as-promised",
  "peerDependencies": {
    "chai": "1.x"
  }
}

上面代碼指定,安裝chai-as-promised模塊時(shí),主程序chai必須一起安裝,而且chai的版本必須是1.x。如果你的項(xiàng)目指定的依賴是chai的2.0版本,就會(huì)報(bào)錯(cuò)。

9、 bin

可選字段,bin字段用來指定各個(gè)內(nèi)部命令對應(yīng)的可執(zhí)行文件的位置。

在項(xiàng)目根目錄創(chuàng)建/bin/www文件

#! /usr/bin/env node

package.json中配置

"bin":{
  "lee-cli":"./bin/www"
}

npm link 將package中的屬性bin的值路徑添加全局鏈接 創(chuàng)建快捷方式連接

在命令行中執(zhí)行lee-cli就會(huì)執(zhí)行bin/www文件。過程是:

在上面的例子中,www會(huì)建立符號(hào)鏈接node_modules/.bin/www。由于node_modules/.bin/目錄會(huì)在運(yùn)行時(shí)加入系統(tǒng)的PATH變量,因此在運(yùn)行npm時(shí),就可以不帶路徑,直接通過命令來調(diào)用這些腳本。

10、 config

config字段用于向環(huán)境變量輸出值

{
  "name" : "package",
  "config" : { "port" : "8080" },
  "scripts" : { "start" : "node server.js" }
}

如果想改變我們可以使用

npm config set package:port 80

11、engines

可選字段,指明了該模塊運(yùn)行的平臺(tái)版本,比如 Node 的某個(gè)版本或者瀏覽器, 也可以指定適用的npm版本 。

"engines" : { 
"node" : 
">=0.10.3 <0.12"
}

12、license

可選字段, 表示定義適用于package.json所描述代碼的許可證。不同的協(xié)議有不同的限制。讓用戶知道他們有何權(quán)限來使用你的模塊,以及使用該模塊有哪些限制。

可參考: choosealicense.com/ 選擇許可證。

如:MIT:最大許可,別人下載你的代碼可以改你的代碼,默認(rèn)安裝值。

13、author

可選字段,項(xiàng)目開發(fā)者。

14、private

可選字段,布爾值,是否私有,設(shè)置為 true 時(shí),npm 拒絕發(fā)布。

這是防止私有包被以外發(fā)布的一種方法。如果你希望包裝某個(gè)包只能被發(fā)布到特定的一個(gè)registry中(比如,一個(gè)內(nèi)部的registry),則可以使用下面的publishConfig字典來描述以在publish-time重寫registry配置參數(shù)。

15、keywords

可選字段,項(xiàng)目關(guān)鍵字,是一個(gè)字符串?dāng)?shù)組。它可以幫助人們在使用npm search時(shí)找到這個(gè)包。

16、os

可選字段,指定模塊可以在什么操作系統(tǒng)上運(yùn)行

17、style

style指定供瀏覽器使用時(shí),樣式文件所在的位置。

18、repository

包代碼存放的地方的類型,可以是 git 或 svn,git 可在 Github 上

19、homepage

可選字段,沒有http://等帶協(xié)議前綴的URL。

版本問題:

version:"1.0.0"

1.0.0:

第一位改變表示:不兼容老代碼,大規(guī)模的更新,新版本發(fā)布;

第二位表示:增加了一些功能,向下兼容;

第三位表示:小的補(bǔ)丁,bug修改;

我們發(fā)表項(xiàng)目的時(shí)候,一盤使用npm + git

  • 使用npm version patch (patch打補(bǔ)丁) 這種會(huì)改變版本的第三位;使用git tag 執(zhí)行即會(huì)自動(dòng)在git上版本號(hào)

  • 使用npm version minor這種改變的版本號(hào)的第二位;同步git版本;

  • 使用npm version major 這種改變版本號(hào)的第一位;同步git版本;

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]

major:主版本號(hào)

minor:次版本號(hào)

patch:補(bǔ)丁號(hào)

premajor:預(yù)備主版本

prepatch:預(yù)備次版本

prerelease:預(yù)發(fā)布版本

ps:注意,如果報(bào)錯(cuò):Git working directory not clean 是說明你現(xiàn)在需要git status是clean的。

git add .
git commit -m"package.json詳解"

npm versin monir -m"增加版本號(hào)"

git push -u origin master

如何制定規(guī)則?

作為使用者,我們可以在 package.json 文件中寫明我們可以接受這個(gè)包的更新程度(假設(shè)當(dāng)前依賴的是 1.2.4 版本):

  • 如果只打算接受補(bǔ)丁版本的更新(也就是最后一位的改變),就可以這么寫:

     1.2
     1.2.x
     ~1.2.4
  • 如果接受小版本的更新(第二位的改變),就可以這么寫:

    1
    1.x
    ^1.2.4
  • 如果可以接受大版本的更新(自然接受小版本和補(bǔ)丁版本的改變),就可以這么寫:

    *x

    小結(jié)一下:總共三種版本變化類型,接受依賴包哪種類型的更新,就把版本號(hào)準(zhǔn)確寫到前一位。

版本周期、階段:

  • α -Alpha 第一階段 一般只供內(nèi)測使用

  • β -Beta 第二階段 已經(jīng)消除了軟件中大部分的不完善之處,但是仍有可能還存在缺陷和漏洞,一般提供給特定的用戶群里來測試使用;

  • γ - RC 是第三階段,此時(shí)產(chǎn)品已經(jīng)相當(dāng)成熟,只需要在個(gè)別地方在做進(jìn)一步的優(yōu)化處理即可上市發(fā)布

例如:

2.1.0-beta.1 一般這樣用戶不會(huì)安裝這種的,這種可以用內(nèi)側(cè)、測試人員使用。

依賴包的版本問題

實(shí)例說明
~1.2.3主版本+次要版本+補(bǔ)丁版本;1.2.3 <= version < 1.3.0;
~1.2主版本+次要版本;1.2.0 <= version < 1.3.0
~1主版本;1.0.0 <= version < 2.0.0
符號(hào)實(shí)例版本范圍說明

1.0.01.0.0鎖定1.0.0版本,必須這個(gè)版本。
^會(huì)匹配最新的大版本依賴包^1.2.3、^0.2.3>=1.2.3 <2.0.0、>=0.2.3 <0.3.0表示安裝1.x.x的最新版本(不低于1.2.3,包括1.3.0),但是不安裝2.x.x,也就是說安裝時(shí)不改變大版本號(hào)。需要注意的是,如果大版本號(hào)為0,則插入號(hào)的行為與波浪號(hào)相同,這是因?yàn)榇藭r(shí)處于開發(fā)階段,即使是次要版本號(hào)變動(dòng),也可能帶來程序的不兼容。(主版本)
~會(huì)匹配最近的小版本依賴包~1.2.3>=1.2.3 <1.3.0表示安裝1.2.x的最新版本(不低于1.2.3),但是不安裝1.3.x,也就是說安裝時(shí)不改變大版本號(hào)和次要版本號(hào)。
>=>=2.1.0>=2.1.0大于等于2.1.0
<=<=2.0.0<=2.0.0小于等于2.0.0
laster

安裝最新的版本
*
>=0.0.0任何版本
-1.2.3 - 2.3.4>=1.2.3 <=2.3.4

區(qū)分安裝Dependenciesdependencies?

devDependencies是開發(fā)所需要的模塊,所以我們可以在開發(fā)過程中需要的安裝上去,來提高我們的開發(fā)效率,比如一些知名的第三方庫, webpackrollUp、less、babel這些。 就沒必要在生成環(huán)境安裝。

以下類庫都建議安裝到devDependencies:

  • 單元測試支撐(mocha、chai);

  • 語法兼容(babel);

  • 語法轉(zhuǎn)換(jsx to js、coffeescript to js、typescript to js)

  • 程序構(gòu)建與優(yōu)化(webpack、gulp、grunt、uglifyJS);

  • css 處理器(postCSS、SCSS、Stylus);

  • 代碼規(guī)范(eslint);

依賴包(指定、更新、本地、使用、卸載)

1、安裝本地依賴包

npm install jquery

這個(gè)命令會(huì)在當(dāng)前目錄創(chuàng)建一個(gè) node_modules 目錄,然后下載我們指定的包到這個(gè)目錄中。

2、指定安裝版本,可以在package name后@版本號(hào)

如果包的名稱以包開頭@,則它是一個(gè)范圍包。

npm install jquery@3.4.1
npm install jquery@">=1.1.0 <2.2.0"
npm install jquery@latest

更新之后,dependencies內(nèi)的版本號(hào)也會(huì)改變。

3、更新依賴包

npm update jquery

4、使用包

let jquery = require('jquery');
<script src="/node_modules/jquery/dist/jquery.js">//這個(gè)需要注意路徑</script>

6、卸載依賴包

npm uninstall jquery

Semantic versioning(語義化版本規(guī)則)

package.json注意事項(xiàng)

根據(jù)上邊我們在使用npm init會(huì)詢問我們填幾項(xiàng)內(nèi)容,有的可以不填,有的必須填,這些必填都是一個(gè)package.json內(nèi)容必須要具備的字段:nameversion,如果沒有,無法執(zhí)行install

  • name:全是小寫,沒有空格,循序使用連字符和下劃線

  • version: 版本號(hào),遵循上邊說的語義化版本規(guī)則x.x.x

其他注意事項(xiàng):

  • 添加中文注釋會(huì)編譯出錯(cuò)

感謝各位的閱讀,以上就是“package.json文件怎么創(chuàng)建”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對package.json文件怎么創(chuàng)建這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站題目:package.json文件怎么創(chuàng)建
網(wǎng)址分享:http://chinadenli.net/article46/pgoohg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站排名搜索引擎優(yōu)化、全網(wǎng)營銷推廣定制網(wǎng)站、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化