欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js的npm包管理器基礎(chǔ)使用教程

 更新時間:2016年05月26日 19:00:59   作者:Murphywuwu  
特別是JavaScript領(lǐng)域中,基于NPM的網(wǎng)絡(luò)傳輸方式真的是越來越流行,包括React與Vue等許多JavaScript庫與框架都選擇使用npm進行管理,這里就為大家送上Node.js的npm包管理器基礎(chǔ)使用教程,需要的朋友可以參考下

配置

npm set

npm set init-author-name 'Your name'
npm set init-author-email 'Your email'
npm set init-author-url 'http://yourdomain.com'
npm set init-license 'MIT'

上面命令等于為npm init設(shè)置了默認值,以后執(zhí)行npm init的時候,package.json的作者姓名、郵件、主頁、許可證字段就會自動寫入預設(shè)的值。這些信息會存放在用戶主目錄的~/.npmrc文件,使得用戶不用每個項目都輸入。
如果某個項目有不同的設(shè)置,可以針對該項目運行npm config。
1.

npm set save-exact true

上面命令設(shè)置加入模塊時,package.json將記錄模塊的確切版本,而不是一個可選的版本范圍。

2.

npm config get prefix

3.

npm config set prefix /usr/local

npm使用
安裝:

npm install grunt-cli

安裝之前,npm install會先檢查,node_modules目錄之中是否已經(jīng)存在指定模塊。如果存在,就不再重新安裝了,即使遠程倉庫已經(jīng)有了一個新版本,也是如此。
如果你希望,一個模塊不管是否安裝過,npm 都要強制重新安裝,可以使用-f或--force參數(shù)。

本地安裝: package會被下載到當前所在目錄,也只能在當前目錄下使用。安裝結(jié)束后,當前目錄下回多出一個node_modules目錄,grunt-cli就安裝在里面。

npm install -g grunt-cli

全局安裝:package會被下載到到特定的系統(tǒng)目錄下,安裝的package能夠在所有目錄下使用。現(xiàn)在變成了/usr/local/lib/node_modules/grunt-cli,/usr/local/lib/node_modules/也就是之前所說的全局安裝目錄啦。
1.安裝當前目錄package.json文件中配置的devDependencies模塊

npm install

2.安裝本地的模塊文件

npm install ./package.tgz

3.安裝指定URL的模塊

npm install https://github.com/indexzero/forever/tarball/v0.5.6

4.安裝本地文件系統(tǒng)中指定的目錄包含的模塊

npm install <folder>

5.安裝并更新package.json中的版本配置

npm install <name> [–save|–save-dev|–save-optional]

(1)添加–save 參數(shù)安裝的模塊的名字及其版本信息會出現(xiàn)在package.json的dependencies選項中
(2)添加–save-dev 參數(shù)安裝的模塊的名字及其版本信息會出現(xiàn)在package.json的devDependencies選項中
(3)添加–save-optional 參數(shù)安裝的模塊的名字及其版本信息會出現(xiàn)在package.json的optionalDependencies選項中
6.安裝模塊的指定版本

npm install <name>@<version>
Example:
npm install underscore@1.5.2

7.安裝模塊指定版本號范圍內(nèi)的某一個版本

npm install <name>@<version range>

Example:

npm install async@”>=0.2.0 <0.2.9″

–force強制拉取遠程資源,即使本地已經(jīng)安裝這個模塊
Example:

npm install underscore –force

8.-g或–global全局安裝模塊,如果沒有這個參數(shù),會安裝在當前目錄的node_modules子目錄下
Example:

npm install -g express

如果你希望,所有模塊都要強制重新安裝,那就刪除node_modules目錄,重新執(zhí)行npm install。

$ rm -rf node_modules
$ npm install

更新

npm update [-g] [<name> [<name> … ]

更新指定name列表中的模塊。-g參數(shù)更新全局安裝的模塊。
如果沒有指定name,且不是在某個模塊內(nèi),會更新當前目錄依賴的所有包都會被更新(包括全局和模塊內(nèi));如果當前目錄在某個模塊目錄內(nèi),會更新該模塊依賴的模塊,所以不指定name直接運行npm update時,最好在某個模塊內(nèi)運行,以免更新到其他不想更新的模塊。

卸載

npm uninstall package

查看
查看安裝了那些包

npm ls --depth=0

查看特定包具體信息

npm ls grunt-cli
npm info grunt-cli

搜索

npm search grunt-cli

發(fā)布
1.package.json
package.json說明:
npm命令運行時會讀取當前目錄的 package.json 文件和解釋這個文件,這個文件基于 Packages/1.1規(guī)范。在這個文件里你可以定義你的應(yīng)用名稱( name )、應(yīng)用描述( description )、關(guān)鍵字( keywords )、版本號( version )、應(yīng)用的配置項( config )、主頁( homepage )、作者( author )、資源倉庫地址( repository )、bug的提交地址( bugs ),授權(quán)方式( licenses )、目錄( directories )、應(yīng)用入口文件( main )、命令行文件( bin )、應(yīng)用依賴模塊( dependencies )、開發(fā)環(huán)境依賴模塊( devDependencies )、運行引擎( engines )和腳本( scripts )等。

對于開發(fā)者而言,開發(fā)和發(fā)布模塊都依賴于他對這個文件 package.json 所包含的意義的正確理解。我們下面用一個本文共用的例子來說明:

{
  "name": "test",
  "version": "0.1.0",
  "description": "A testing package",
  "author": "A messed author <messed@example.com>",
  "dependencies": {
    "express": "1.x.x",
    "ejs": "0.4.2",
    "redis": ">= 0.6.7"
  },
  "devDependencies": {
    "vows": "0.5.x"
  },
  "main": "index",
  "bin": {
    "test": "./bin/test.js"
  },
  "scripts": {
    "start": "node server.js",
    "test": "vows test/*.js",
    "preinstall": "./configure",
    "install": "make && make install"
  },
  "engines": {
    "node": "0.4.x"
  }
}

這個例子里我們定義了應(yīng)用的入口文件( main )為 index ,當其他應(yīng)用引用了我們的模塊 require('test') 時,這個 main 的值 index.js 文件被調(diào)用。腳本( scripts )使用hash 表定義了幾個不同的命令。script.start 里的定義的 node server.js 會在 npm start 時被調(diào)用,同樣的 npm test 調(diào)用時對應(yīng)的 scripts.test 里定義的命令被調(diào)用。在有些 native 模塊需要編譯的話,我們可以定義預編譯和編譯的命令。

本例中還定義了應(yīng)用依賴模塊( dependencies )和開發(fā)環(huán)境依賴模塊( devDependencies )。應(yīng)用依賴模塊會在安裝時安裝到當前模塊的 node_modules 目錄下。開發(fā)環(huán)境依賴模塊主要時在開發(fā)環(huán)境中用到的依賴模塊,用命令 npm 的命令 install 或 link 加上參數(shù) —dev 安裝到當前模塊的 node_modules 目錄下。

name: package的名字(由于他會成為url的一部分,所以 non-url-safe 的字母不會通過,也不允許出現(xiàn)"."、"_"),最好先在[](http://registry.npmjs.org/上搜下你取的名字是否已經(jīng)存在)
version: package的版本,當package發(fā)生變化時,version也應(yīng)該跟著一起變化,同時,你聲明的版本需要通過semver的校驗(semver可自行谷歌)
dependencies: package的應(yīng)用依賴模塊,即別人要使用這個package,至少需要安裝哪些東東。應(yīng)用依賴模塊會安裝到當前模塊的node_modules目錄下。
devDependencies:package的開發(fā)依賴模塊,插件發(fā)布的時候自動刪除不相關(guān)代碼。用個文件記錄一下當前項目中安裝或者需要的插件,即別人要在這個package上進行開發(fā),可以一鍵安裝項目所需插件。

2.版本號
大家也注意到 package.json 里的版本號有些是 >= 0.6.7 有些是 1.x.x,這有什么區(qū)別?npm 使用于語義化的版本識別來進行版本管理。并不是所有的模塊都會提供向后兼容性,有時候某些模塊因為某些原因?qū)е虏幌蚝蠹嫒荨K晕覀冃枰x一些規(guī)則來保證模塊能夠在某些特定的版本中可用,并且保證能用最新的版本,因為那些版本總是修改了一些 bug 或提升了性能等。我們來看一下版本定義的字段:

例子:0.4.2

+ 大版本(0)
+ 小版本(4)
+ 補丁版本(2)
一個軟件發(fā)布的時候,默認就是 1.0.0 版。如果以后發(fā)布補丁,就增加最后一位數(shù)字,比如1.0.1;如果增加新功能,且不影響原有的功能,就增加中間的數(shù)字(即小版本號),比如1.1.0;如果引入的變化,破壞了向后兼容性,就增加第一位數(shù)字(即大版本號),比如2.0.0。

在上面 package.json 的定義里我們確信模塊在所有的 Nodejs 0.4及以上和0.5以下版本里都能運行。依賴模塊 redis 在所有大于或等于0.6.7的版本上都能運行,依賴模塊 ejs 只能確保運行在0.4.2版本里,依賴模塊 express 確保能夠兼容大于或等于1.0.0并且小于2.0.0。

生成

npm init

用來初始化生成一個新的package.json文件。它會向用戶提問一系列問題,如果你覺得不用修改默認配置,一路回車就可以了。
如果使用了-f(代表force)、-y(代表yes),則跳過提問階段,直接生成一個新的package.json文件。

相關(guān)文章

  • Node使用Sequlize連接Mysql報錯:Access denied for user ‘xxx’@‘localhost’

    Node使用Sequlize連接Mysql報錯:Access denied for user ‘xxx’@‘localh

    這篇文章主要給大家介紹了關(guān)于Node使用Sequlize連接Mysql報錯:Access denied for user 'xxx'@'localhost'的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2018-01-01
  • node連接MongoDB數(shù)據(jù)庫錯誤:MongoServerSelectionError:?connect?ECONNREFUSED?::1:27017(解決方案)

    node連接MongoDB數(shù)據(jù)庫錯誤:MongoServerSelectionError:?connect?ECON

    使用node連接MongoDB數(shù)據(jù)庫時發(fā)生報錯,MongoServerSelectionError:?connect?ECONNREFUSED?::1:27017,本文給大家分享原因分析及解決方案,感興趣的朋友跟隨小編一起看看吧
    2023-04-04
  • node ftp上傳文件夾到服務(wù)器案例詳解

    node ftp上傳文件夾到服務(wù)器案例詳解

    這篇文章主要介紹了node ftp上傳文件夾到服務(wù)器的視線方法,結(jié)合具體實例分析了node.js調(diào)用ftp模塊進行文件上傳的相關(guān)配置、連接、path路徑操作與文件傳輸實現(xiàn)方法,需要的朋友可以參考下
    2023-04-04
  • Node.js基礎(chǔ)入門之使用方式及模塊化詳解

    Node.js基礎(chǔ)入門之使用方式及模塊化詳解

    Node.js是一個基于 Chrome V8 引擎的 JavaScript 運行時。類似于Java中的JRE,.Net中的CLR。本文將詳細為大家介紹一些Node.js的基礎(chǔ)知識和使用方式以及其模塊化,需要的可以參考一下
    2022-03-03
  • node.js中的fs.mkdirSync方法使用說明

    node.js中的fs.mkdirSync方法使用說明

    這篇文章主要介紹了node.js中的fs.mkdirSync方法使用說明,本文介紹了fs.mkdirSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs批量下載圖片的實現(xiàn)方法

    nodejs批量下載圖片的實現(xiàn)方法

    本篇文章主要介紹了nodejs批量下載圖片的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 詳解nodeJS之路徑PATH模塊

    詳解nodeJS之路徑PATH模塊

    本篇文章主要介紹了詳解nodeJS之路徑PATH模塊 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Nodejs關(guān)于gzip/deflate壓縮詳解

    Nodejs關(guān)于gzip/deflate壓縮詳解

    本文主要向大家介紹了nodejs中關(guān)于gzip/deflate壓縮的2種方法,分別是管道壓縮和非管道壓縮,十分詳細,并附帶示例,這里推薦給大家參考下。
    2015-03-03
  • Node.js中的模塊化,npm包管理器詳解

    Node.js中的模塊化,npm包管理器詳解

    這篇文章主要介紹了node模塊與npm包管理工具,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09
  • Nodejs 構(gòu)建Cluster集群多線程Worker threads

    Nodejs 構(gòu)建Cluster集群多線程Worker threads

    這篇文章主要為大家介紹了Nodejs 構(gòu)建Cluster集群多線程Worker threads示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10

最新評論