亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

【Node Hero】2. 使用 NPM

CarterLi / 3546人閱讀

摘要:網(wǎng)站和使用同樣的注冊(cè)庫(kù)來顯示模塊以及查找模塊。使用在上一章開始使用中,當(dāng)創(chuàng)建文件時(shí),已經(jīng)遇到了。此外,全局命名空間只包含公共模塊。通過引入作用域包來解決此問題。下一步異步編程下一章學(xué)習(xí)使用回調(diào)和實(shí)現(xiàn)異步編程的原理。

本文轉(zhuǎn)載自:眾成翻譯
譯者:網(wǎng)絡(luò)埋伏紀(jì)事
鏈接:http://www.zcfy.cc/article/1749
原文:https://blog.risingstack.com/node-hero-npm-tutorial/

本章將學(xué)習(xí)什么是 NPM,以及如何使用它。我們開始吧!

NPM 概述

NPM 是 Node.js 應(yīng)用程序所用的包管理器 - 你可以在 NPM 中找到大量模塊,這樣你就不用重新造輪子了。它就像 Java 的 Maven 或者 PHP 的 Composer。與 NPM 交互有兩種主要的接口 - NPM 網(wǎng)站以及 NPM 命令行工具。

網(wǎng)站和 CLI 使用同樣的注冊(cè)庫(kù)來顯示模塊以及查找模塊。

NPM 網(wǎng)站

NPM 網(wǎng)站地址為 https://npmjs.com。你可以注冊(cè)成一個(gè)新用戶,或者只查找包。

命令行界面

要運(yùn)行 CLI,只需執(zhí)行:

npm

注意,NPM 是與 Node.js 二進(jìn)制文件捆綁在一起的,所以不必安裝它 - 但是,如果想使用指定的 npm 版本,可以更新它。如果想安裝 npm 第三版,那么就可以執(zhí)行:npm install npm@3 -g

使用 NPM

在上一章 開始使用 Node.js 中,當(dāng)創(chuàng)建 package.json 文件時(shí),已經(jīng)遇到了 NPM。下面我們繼續(xù)擴(kuò)展知識(shí)!

添加依賴

本節(jié)將學(xué)習(xí)如何給應(yīng)用程序添加運(yùn)行時(shí)依賴。

有了 package.json 文件之后,就可以給應(yīng)用程序添加依賴了。下面我們先添加一個(gè)!試試下面的命令:

npm install lodash --save  

用這一條命令,我們做了兩件事情:首先,lodash 被下載,并放到 node_modules 文件夾。所有外部依賴都會(huì)放在這個(gè)文件夾中。一般不會(huì)將這個(gè)文件夾添加到源代碼管理,所以如果你在用 git,要確保將 lodash 添加到 .gitignore 文件中。

這對(duì)你的 .gitignore 是一個(gè)好起點(diǎn)。

# Logs
logs
*.log
npm-debug.log*

# Runtime data
pids
*.pid
*.seed

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules
jspm_packages

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

現(xiàn)在我們來看看 package.json 文件中有啥變化!文件中出現(xiàn)了一個(gè)新屬性dependencies

"dependencies": {
  "lodash": "4.6.1"
}

這意味著 lodash 版本 4.6.1 現(xiàn)在安裝好了,可以使用了。注意,NPM 遵循 SemVer 規(guī)則來控制包的版本。

假設(shè)版本號(hào)格式為 “主版本號(hào).次版本號(hào).補(bǔ)丁版本號(hào)”,當(dāng)作出不兼容的 API 修改時(shí),增加主版本號(hào);當(dāng)以向后兼容的方式添加功能時(shí),增加次版本號(hào);當(dāng)作出向后兼容的錯(cuò)誤修正時(shí),增加補(bǔ)丁版本號(hào)。更多信息參見:http://semver.org/。

既然 lodash 已經(jīng)可以用了,我們來看看能怎么用!可以像你用自己的模塊一樣的方式用它,不過現(xiàn)在不需要定義路徑,只需要模塊的名稱:

// index.js
const _ = require("lodash")

_.assign({ "a": 1 }, { "b": 2 }, { "c": 3 });  
// → { "a": 1, "b": 2, "c": 3 }
添加開發(fā)依賴

本節(jié)將學(xué)習(xí)如何把構(gòu)建時(shí)依賴添加到應(yīng)用中。

在創(chuàng)建 Web 應(yīng)用程序時(shí),可能需要壓縮 JavaScript 文件,合并 CSS 文件等等。做這種事情的模塊只會(huì)在資源構(gòu)建期間運(yùn)行,所以運(yùn)行的應(yīng)用程序不需要它們。

你可以像這樣安裝這些腳本:

npm install mocha --save-dev  

之后,package.json 文件中會(huì)出現(xiàn)一個(gè)稱為 devDependencies 的新小節(jié)。所有帶有 --save-dev 安裝的模塊都會(huì)被放在這里 - 它們也會(huì)被放在同一 node_modules 目錄中。

NPM 腳本

NPM 腳本是一個(gè)很強(qiáng)大的概念 - 有了它們相助,就可以創(chuàng)建小的實(shí)用工具,甚至構(gòu)成復(fù)雜的構(gòu)建系統(tǒng)。

最常見的就是 starttest 腳本。用 start 腳本可以定義別人如何啟動(dòng)你的應(yīng)用程序,用 test 腳本定義如何運(yùn)行測(cè)試。在 package.json 中,它們可以像這樣:

  "scripts": {
    "start": "node index.js",
    "test": "mocha test",
    "your-custom-script": "echo npm"
  }

這里要注意的事情:

start: 很簡(jiǎn)單,它只描述應(yīng)用程序的起點(diǎn),可以被 npm start 調(diào)用。

test: 用途是執(zhí)行你的測(cè)試 - 這里有個(gè)陷阱,在本例中 mocha 不需要全局安裝,因?yàn)?npm 會(huì)在 node_modules/.bin 文件夾下查找它,而 mocha 也會(huì)放在這里。它可以用 npm test 調(diào)用。

your-custom-script: 任何你想要的東西,你可以挑任何名稱。它可以用 npm run your-custom-script 調(diào)用 - 不要忘記 run 部分!

作用域包/私有包

起初 NPM 對(duì)于模塊名稱有一個(gè)全局共享的命名空間 - 在注冊(cè)庫(kù)中有超過 250,000 個(gè)模塊,大部分簡(jiǎn)單名稱都已經(jīng)被采用了。此外,全局命名空間只包含公共模塊。

NPM 通過引入作用域包(Scoped Package)來解決此問題。作用域包有如下命名模式:

@myorg/mypackage

可以采用與以前一樣的方式安裝作用域包:

npm install @myorg/mypackage --save-dev  

它會(huì)以如下方式出現(xiàn)在 package.json 中:

"dependencies": {
  "@myorg/mypackage": "^1.0.0"
}

不出所料,請(qǐng)求作用域包應(yīng)該是如下方式:

require("@myorg/mypackage")  

更多信息,請(qǐng)參考 NPM 作用域模塊文檔。

下一步:異步編程

下一章學(xué)習(xí)使用回調(diào)和 Promises 實(shí)現(xiàn)異步編程的原理。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/84983.html

相關(guān)文章

  • Node Hero】1. 開始使用 Node.js

    摘要:使用一個(gè)事件驅(qū)動(dòng)的非阻塞式的模型,讓它輕量而高效。也就是說提供了用編寫服務(wù)器的可能性,這種服務(wù)器具有令人難以置信的性能。正如官方聲明所說是一個(gè)使用與瀏覽器相同引擎的運(yùn)行時(shí)。這意味著有兩個(gè)發(fā)布版本穩(wěn)定版和試驗(yàn)版。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1748原文:https://blog.risingstack.com/nod...

    hqman 評(píng)論0 收藏0
  • Node Hero】7. Node.js 項(xiàng)目結(jié)構(gòu)

    摘要:本教程會(huì)學(xué)習(xí)如何正確組織一個(gè)項(xiàng)目的結(jié)構(gòu),從而在應(yīng)用程序開始增長(zhǎng)時(shí)避免混亂。項(xiàng)目結(jié)構(gòu)的五個(gè)基本規(guī)則組織項(xiàng)目有不少可能的方式并且每種已知的方式都有其興衰。過去在,我們有機(jī)會(huì)創(chuàng)建各種規(guī)模的高效應(yīng)用程序,也獲得了大量關(guān)于項(xiàng)目結(jié)構(gòu)注意事項(xiàng)的見解。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1756原文:https://blog.rising...

    張紅新 評(píng)論0 收藏0
  • Node Hero】6. Node.js Request 模塊

    摘要:狀態(tài)碼描述了請(qǐng)求的結(jié)果,它對(duì)錯(cuò)誤處理是必不可少的。響應(yīng)還沒完成成功這些狀態(tài)碼表示請(qǐng)求被接收并正確處理了。服務(wù)器錯(cuò)誤當(dāng)服務(wù)器由于某些錯(cuò)誤不能完成有效的請(qǐng)求時(shí),就發(fā)送這些狀態(tài)碼。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1758原文:https://blog.risingstack.com/node-hero-node-js-req...

    BlackHole1 評(píng)論0 收藏0
  • Node Hero】4. 第一個(gè) Node.js HTTP 服務(wù)器

    摘要:本文轉(zhuǎn)載自眾成翻譯譯者網(wǎng)絡(luò)埋伏紀(jì)事鏈接原文本章我會(huì)指導(dǎo)你啟動(dòng)一個(gè)簡(jiǎn)單的服務(wù)器,并開始為請(qǐng)求服務(wù)?,F(xiàn)在,我們開始創(chuàng)建第一個(gè)服務(wù)器我們將模塊,并將服務(wù)器綁定到端口來監(jiān)聽。必須用如下方式啟動(dòng)服務(wù)器總結(jié)本章學(xué)習(xí)了如何從頭開始創(chuàng)建第一個(gè)服務(wù)器。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1750原文:https://blog.risings...

    Coly 評(píng)論0 收藏0
  • Node Hero】3. 理解異步編程

    摘要:異步編程在傳統(tǒng)編程實(shí)踐中,大多數(shù)操作都是同步發(fā)生的。中的異步編程異步是一種輸入輸出處理的形式,它允許在傳輸完成之前,其它處理能繼續(xù)進(jìn)行。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1759原文:https://blog.risingstack.com/node-hero-async-programming-in-node-js/ ...

    kevin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<