乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Nodejs和npm入門使用

       instl 2019-06-28

      文:鐵樂(lè)貓

      引子

      2018年6月1日的兒童節(jié),我在北京學(xué)習(xí)python。
      課程來(lái)到前端的javascript 和 jquery,今天老師還給科普了node.js的包管理npm。
      雖然以前工作時(shí)己有安裝和使用npm,但畢竟只知其然不知其所以然。
      直到今天聽(tīng)老師科普了一下才恍然大悟它是怎樣用法的。
      后面還參考引用了一些網(wǎng)上的npm教程,更加深刻理解了。

      何為node.js 和 npm

      Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的平臺(tái), 用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js 使用事件驅(qū)動(dòng), 非阻塞I/O模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。

      以上摘自百度百科,簡(jiǎn)單來(lái)說(shuō),Node.js很適合搭建輕量的服務(wù)器(應(yīng)用),所以它又被人稱為服務(wù)器語(yǔ)言,前端中的后端語(yǔ)言。

      node翻譯過(guò)來(lái)是節(jié)點(diǎn)的意思,而node.js后面特地帶了.js,就表示它與JavaScript有莫大的關(guān)系。
      node.js是javascript的一種運(yùn)行環(huán)境,是服務(wù)器端的javascript的解釋器。

      npm則是包含在node.js里面的一個(gè)包管理工具,就如同linux中的yum倉(cāng)庫(kù),rpm包管理;如同python中的pip包管理工具一樣。

      而這些包管理工具都是予以使用的人們方便,同時(shí)解決各種包依賴之間的關(guān)系的。
      等下面演示后,就會(huì)知道有npm去解決項(xiàng)目及包之間的依賴關(guān)系是多么的便利,省去了人手上的多少心力。讓開(kāi)發(fā)人員專注于代碼上。

      既然npm是包管理工具,那么它自己也和node.js分開(kāi)自成一個(gè)網(wǎng)站,在npm的網(wǎng)站上面,就如同github,其倉(cāng)庫(kù)中保管了N多的開(kāi)源項(xiàng)目,有世界上眾多開(kāi)發(fā)者提供的項(xiàng)目。我們只需要在npm的網(wǎng)站上搜索相關(guān)的就可以找到,然后在線上下載也行,直接在自己的項(xiàng)目中使用命令行安裝也行。

      npm 由三個(gè)獨(dú)立的部分組成:

      • npm官方網(wǎng)站(倉(cāng)庫(kù)源)

      • 注冊(cè)表(registry)(package.json)

      • 命令行工具 (CLI)

      網(wǎng)站 是開(kāi)發(fā)者查找包(package)、設(shè)置參數(shù)以及管理 npm 使用體驗(yàn)的主要途徑。

      注冊(cè)表 是一個(gè)巨大的數(shù)據(jù)庫(kù),保存了每個(gè)包(package)的信息。

      CLI 通過(guò)命令行或終端運(yùn)行。開(kāi)發(fā)者通過(guò) CLI 與 npm 打交道。

      npm

      怎么使用node.js和npm

      安裝node.js & npm

      官方下載安裝包鏈接: https:///en/download/
      windows下安裝msi方式的安裝包,很簡(jiǎn)單,基本就是一路點(diǎn)擊鼠標(biāo)確認(rèn)下來(lái)的,所以就不詳說(shuō)了。
      這里放上一個(gè)詳細(xì)截圖說(shuō)明安裝的鏈接地址:
      https://www.runoob.com/nodejs/nodejs-install-setup.html

      其實(shí)安裝完node.js后就已經(jīng)將npm也安裝上了。不過(guò)若是想要單獨(dú)更新npm時(shí)怎么辦?
      可以使用以下兩個(gè)命令進(jìn)行更新:
      npm install npm@latest -g
      npm install npm@next -g

      npm init 初始化項(xiàng)目(創(chuàng)建node.js模塊)

      npm init 在項(xiàng)目中引導(dǎo)創(chuàng)建一個(gè)package.json文件。
      安裝包的信息可保持到項(xiàng)目的package.json文件中,以便后續(xù)的其它的項(xiàng)目開(kāi)發(fā)或者他人合作使用,package.json在項(xiàng)目中是必不可少的。

      語(yǔ)法:
      npm init [-f|--force|-y|--yes]

      在本地創(chuàng)建一個(gè)項(xiàng)目文件夾,例如我這次的例子目錄是GhostScoolScreatBase。
      cmd中進(jìn)入到該目錄下。
      開(kāi)始初始化項(xiàng)目:npm init
      和git的初始化倉(cāng)庫(kù)是不是很像。
      這樣初始化之后,項(xiàng)目目錄下會(huì)自動(dòng)生成一個(gè)package.json文件。

      注意的是,npm init命令后,npm會(huì)詢問(wèn)你一系列問(wèn)題,當(dāng)你填入答案后才會(huì)正式結(jié)束初始化,如果不太想自定義一些關(guān)于項(xiàng)目的描述,可以不敲npm init,而是直接敲npm init --yes

      命令行中將會(huì)提示 package.json 字段中需要你輸入的值。
      名稱(name)版本(version) 這兩個(gè)字段是必填的。
      你還需要輸入 入口文件字段(main) 字段,默認(rèn)值是 index.js

      在index.js文件中,添加一個(gè)函數(shù),作為 exports對(duì)象的一個(gè)屬性。這樣,require 此文件之后,這個(gè)函數(shù)在其他代碼中就可以使用了。

      exports.printMsg = function() {  console.log("This is a message from the demo package");
      }

      如圖:

      如果想為作者(author)字段添加信息,可以使用以下格式(郵箱、網(wǎng)址都是選填的):

      Your Name <email@> (http://)

      打開(kāi)生成的package.json文件,可以看到類似如下的:

      {  "name": "ghostschoolscreatbase",  "version": "1.0.0",  "description": "鐵血丹心-劇場(chǎng)經(jīng)典大戲-幽靈學(xué)院第六部2018夏季特別篇-你和我的秘密基地",  "main": "index.js",  "scripts": {"test": "echo \"Error: no test specified\" && exit 1"
        },  "author": "鐵樂(lè)貓",  "license": "ISC"}

      Package.json 屬性說(shuō)明

      • name - 包名。

      • version - 包的版本號(hào)。

      • description - 包的描述。

      • homepage - 包的官網(wǎng) url 。

      • author - 包的作者姓名。

      • contributors - 包的其他貢獻(xiàn)者姓名。

      • dependencies - 依賴包列表。如果依賴包沒(méi)有安裝,npm 會(huì)自動(dòng)將依賴包安裝在 node_module 目錄下。

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

      • main - main 字段指定了程序的主入口文件,require('moduleName') 就會(huì)加載這個(gè)文件。這個(gè)字段的默認(rèn)值是模塊根目錄下面的 index.js。

      • keywords - 關(guān)鍵字

      npm install 下載安裝依賴包

      前面有提到初始化項(xiàng)目,可視為創(chuàng)建node.js模塊的時(shí)候,會(huì)生成package.json文件。

      而我們的項(xiàng)目顯然會(huì)在途中用上很多模塊,這些模塊是不便全部上傳到github倉(cāng)庫(kù)供用戶下載的(github有限制倉(cāng)庫(kù)大小不能超過(guò)100M)。且用戶還需自己手動(dòng)安裝這些依賴包也容易出錯(cuò)。

      為此,npm提供了很大的便利,比如這次的項(xiàng)目,我們會(huì)用上jquery。
      命令行進(jìn)入項(xiàng)目目錄;
      執(zhí)行npm install jquery --save

      npm install <package_name>  # 安裝一個(gè)本地包,如果加上-g選項(xiàng)則是安裝全局包

      有兩種方式用來(lái)安裝 npm 包:本地安裝和全局安裝。至于選擇哪種方式來(lái)安裝,取決于我們?nèi)绾问褂眠@個(gè)包。

      • 如果你自己的模塊依賴于某個(gè)包,并通過(guò) Node.js 的 require 加載,那么你應(yīng)該選擇本地安裝,這種方式也是 npm install 命令的默認(rèn)行為。

      • 如果你想將包作為一個(gè)命令行工具,(比如 grunt CLI),那么你應(yīng)該選擇全局安裝。

      回到實(shí)例,這時(shí)項(xiàng)目下自動(dòng)會(huì)生成一個(gè)node_modules,并且node_modules文件下有jquery包,另外在package.json文件中也會(huì)有當(dāng)前記錄:

      "dependencies": {"jquery": "^3.
      }

      安裝好之后,express 包就放在了工程目錄下的 node_modules 目錄中,因此在代碼中只需要通過(guò) require('express') 的方式就好,無(wú)需指定第三方包路徑。

      var express =  require('express');

      同理,你在npm中下載別人發(fā)布的項(xiàng)目或模塊后,也需要npm install來(lái)安裝好依賴以便運(yùn)行。

      本地安裝和全局安裝區(qū)別

      • 本地安裝

        • 1. 將安裝包放在 ./node_modules 下(運(yùn)行 npm 命令時(shí)所在的目錄),如果沒(méi)有 node_modules 目錄,會(huì)在當(dāng)前執(zhí)行 npm 命令的目錄下生成 node_modules 目錄。

        • 2. 可以通過(guò) require() 來(lái)引入本地安裝的包。

      • 全局安裝

        • 1. 將安裝包放在 /usr/local 下或者你 node 的安裝目錄。

        • 2. 可以直接在命令行里使用。

      如果你希望具備兩者功能,則需要在兩個(gè)地方安裝它或使用 npm link。

      補(bǔ)充-模塊操作

      卸載模塊

      我們可以使用以下命令來(lái)卸載 Node.js 模塊。

      $ npm uninstall express

      卸載后,你可以到 /node_modules/ 目錄下查看包是否還存在,或者使用以下命令查看:

      $ npm ls

      更新模塊

      我們可以使用以下命令更新模塊:

      $ npm update express

      搜索模塊

      使用以下來(lái)搜索模塊:

      $ npm search express

      創(chuàng)建模塊和發(fā)布模塊

      創(chuàng)建模塊使用的命令和步驟在前面npm init中己提到。

      使用以下命令在 npm 資源庫(kù)中注冊(cè)用戶(使用郵箱注冊(cè)):

      $ npm adduser Username: tielemaoPassword:  Email:  (this IS public)tieleyumao@gmail.com

      用以下命令來(lái)發(fā)布模塊:

      $ npm publish

      如果你以上的步驟都操作正確,你就可以跟其他模塊一樣使用 npm 來(lái)安裝自己發(fā)布的模塊。

      版本號(hào)

      使用NPM下載和發(fā)布代碼時(shí)都會(huì)接觸到版本號(hào)。NPM使用語(yǔ)義版本號(hào)來(lái)管理代碼,這里簡(jiǎn)單介紹一下。

      語(yǔ)義版本號(hào)分為X.Y.Z三位,分別代表主版本號(hào)、次版本號(hào)和補(bǔ)丁版本號(hào)。當(dāng)代碼變更時(shí),版本號(hào)按以下原則更新。

      • 如果只是修復(fù)bug,需要更新Z位。

      • 如果是新增了功能,但是向下兼容,需要更新Y位。

      • 如果有大變動(dòng),向下不兼容,需要更新X位。

      版本號(hào)有了這個(gè)保證后,在申明第三方包依賴時(shí),除了可依賴于一個(gè)固定版本號(hào)外,還可依賴于某個(gè)范圍的版本號(hào)。例如"argv": "0.0.x"表示依賴于0.0.x系列的最新版argv。

      NPM支持的所有版本號(hào)范圍指定方式可以查看官方文檔。

      使用淘寶 NPM 鏡像

      大家都知道國(guó)內(nèi)直接使用 npm 的官方鏡像是非常慢的,這里推薦使用淘寶 NPM 鏡像。

      淘寶 NPM 鏡像是一個(gè)完整 鏡像,可以用此代替官方版本(只讀),同步頻率目前為 10分鐘一次,以保證盡量與官方服務(wù)同步。

      使用淘寶定制的 cnpm (gzip 壓縮支持) 命令行工具代替默認(rèn)的 npm:

      $ npm install -g cnpm --registry=https://registry.npm.

      這樣就可以使用 cnpm 命令來(lái)安裝模塊了:

      $ cnpm install [name]

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多