天天看點

Node.js的NPM使用教程

1. 理論部分

1.1 Node.js簡介

- Node.js是運作在服務端的JavaScript

- Node.js是基于Chrome JavaScript運作時建立的一個平台

- Node.js是事件驅動I/O服務端JavaScript環境,基于Google的V8引擎

注:V8引擎執行Javascript的速度非常快,性能非常好

1.2 npm的概念

NPM是JavaScript開發人員可以輕松共享和重用代碼,并且可以更輕松更新你所共享的代碼。

1.3 npm包的分類

1.3.1 全局安裝與全局npm包

- 通過“npm install -g <package_name>”指令生成

- 在任一目錄下通過require函數傳遞npm包的絕對路徑引用

- 無法通過npm包名稱直接引用

1.3.2 本地安裝與本地npm包

- 項目檔案夾内通過“npm install <package_name>”指令生成

- 項目檔案夾内可直接通過require函數傳遞本地npm包名稱引用

- 本地安裝的項目檔案夾支援自定義(如,/var/www/project1)

2 使用方法

2.1 配置Node.js環境

2.1.1 配置Node.js的源

1

<code>yum </code><code>install</code> <code>-y http:</code><code>//rpm</code><code>.nodesource.com</code><code>/pub_8</code><code>.x</code><code>/el/7/x86_64/nodesource-release-el7-1</code><code>.noarch.rpm</code>

2.1.2 安裝Node.js

<code>yum </code><code>install</code> <code>-y nodejs-8.1.3</code>

2.1.3 校驗安裝

2.1.3.1 校驗Node.js

<code>node -</code><code>v</code>

顯示如下:

<code>v8.1.3</code>

2.1.3.2 校驗npm

<code>npm -</code><code>v</code>

<code>5.0.3</code>

2.1.4 建立npm管理使用者

2

<code>useradd</code> <code>npm</code>

<code>su</code> <code>- npm</code>

注:如無特殊說明第2章節往下代碼都使用npm使用者身份執行,而非root

2.1.5 配置全局npm目錄

2.1.3.1 查找npm預設路徑

<code>npm config get prefix</code>

<code>/usr</code>

2.1.3.2  建立npm全局目錄

<code>mkdir</code> <code>~/.npm-global</code>

2.1.3.3  建立npm全局目錄

<code>npm config </code><code>set</code> <code>prefix </code><code>'~/.npm-global'</code>

2.1.3.4  配置npm環境變量

<code>echo</code> <code>'export PATH=~/.npm-global/bin:$PATH'</code> <code>&gt;&gt; ~/.bash_profile</code>

<code>source</code>  <code>~/.bash_profile</code>

2.1.3.5  測試配置

<code>npm </code><code>install</code> <code>-g jshint</code>

2.2 Node.js軟體包的配置

2.2.1 檢視已安裝的包

2.2.1.1 本地包操作1

<code>npm </code><code>ls</code>

2.2.1.2 本地包操作2

<code>npm </code><code>ls</code> <code>--depth 0</code>

2.2.1.3 全局包操作1

<code>npm </code><code>ls</code> <code>-g</code>

2.2.1.2 全局包操作2

<code>npm </code><code>ls</code> <code>-g --depth 0</code>

2.2.2 安裝軟體包

2.2.2.1 本地包操作

<code>npm </code><code>install</code> <code>&lt;package_name&gt;</code>

2.2.2.2 全局包操作

<code>npm </code><code>install</code>  <code>-g &lt;package_name&gt;</code>

2.2.3 安裝并儲存依賴關系

2.2.3.1 本地包操作

<code>npm </code><code>install</code> <code>&lt;package_name&gt; --save</code>

注:存在“package-lock.json”檔案中

2.2.3.2 全局包操作

<code>npm </code><code>install</code> <code>-g &lt;package_name&gt; --save</code>

2.2.5 安裝并儲存開發依賴關系

2.2.5.1 本地包操作

<code>npm </code><code>install</code> <code>&lt;package_name&gt; --save-dev</code>

2.2.5.2 本地包操作

<code>npm </code><code>install</code> <code>-g &lt;package_name&gt; --save-dev</code>

2.2.6 檢視廢棄的包

2.2.6.1 本地包操作

<code>npm outdated</code>

2.2.6.2 全局包操作

<code>npm outdated -g --depth=0</code>

2.2.7 更新的軟體包

2.2.7.1 本地包操作

<code>npm update &lt;package_name&gt;</code>

2.2.7.2 全局包操作

<code>npm update -g &lt;package_name&gt;</code>

2.2.8 解除安裝軟體包

2.2.8.1 本地包操作

<code>npm uninstall &lt;package_name&gt;</code>

2.2.8.2 全局包操作

<code>npm uninstall -g &lt;package_name&gt;</code>

2.2.9 解除安裝軟體包并儲存依賴關系

<code>npm update --save &lt;package_name&gt;</code>

<code>npm update -g --save &lt;package_name&gt;</code>

2.3 使用package.json

2.3.1 package.json的作用

- 聲明項目所需的依賴包

- 通過語義版本控制規則聲明項目所需包的版本

- 是項目更備援重複建構和共享

2.3.2 package.json的書寫要求

- name

 -- 全部小寫

-- 單詞間不允許使用空格

-- 可使用破折号與下劃線

- version

 -- 格式“x.x.x”

-- 遵守semver規範

範例如下:

3

4

<code>{</code>

<code>  </code><code>“name”:“my-awesome-package”,</code>

<code>  </code><code>“version”:“1.0.0”</code>

<code>}</code>

2.3.3 建立預設的package.json檔案

<code>npm init -y</code>

驗證建立

<code>cat</code> <code>/home/npm/package</code><code>.json</code>

 顯示如下:

5

6

7

8

9

10

11

12

<code>  </code><code>"name"</code><code>: </code><code>"npm"</code><code>,</code>

<code>  </code><code>"version"</code><code>: </code><code>"1.0.0"</code><code>,</code>

<code>  </code><code>"description"</code><code>: </code><code>""</code><code>,</code>

<code>  </code><code>"main"</code><code>: </code><code>"index.js"</code><code>,</code>

<code>  </code><code>"scripts"</code><code>: {</code>

<code>    </code><code>"test"</code><code>: </code><code>"echo \"Error: no test specified\" &amp;&amp; exit 1"</code>

<code>  </code><code>},</code>

<code>  </code><code>"keywords"</code><code>: [],</code>

<code>  </code><code>"author"</code><code>: </code><code>""</code><code>,</code>

<code>  </code><code>"license"</code><code>: </code><code>"ISC"</code>

=====================================

npm參考:

----------

<a href="https://www.npmjs.com/package/cnpm" target="_blank">https://www.npmjs.com/package/cnpm</a>

<a href="https://npm.taobao.org/" target="_blank">https://npm.taobao.org/</a>

<a href="https://cnpmjs.org/" target="_blank">https://cnpmjs.org/</a>

nodejs參考:

------------

<a href="http://www.runoob.com/nodejs/nodejs-mysql.html" target="_blank">http://www.runoob.com/nodejs/nodejs-mysql.html</a>

本文轉自 tanzhenchao 51CTO部落格,原文連結:http://blog.51cto.com/cmdschool/1950640,如需轉載請自行聯系原作者

繼續閱讀