引入模塊
var foo1 = require('./foo');
加載使用JSON文件
var data = require('./data.json');
導出模塊方法和屬性
exports.hello = function () {
console.log('Hello World!');
};
替換當前模塊的導出對象
module.exports = function () {
console.log('Hello World!');
};
包:由多個子模塊組成的大模塊稱做包,並把所有子模塊放在同一個目錄裏。
var head = require('./head');
var body = require('./body');
exports.create = function (name) {
return {
name: name,
head: head.create(),
body: body.create()
};
};
在組成一個包的所有子模塊中,需要有一個入口模塊,入口模塊的導出對象被作爲包的導出對象。
package.json如果想自定義入口模塊的文件名和存放位置,就需要在包目錄下包含一個package.json
文件,並在其中指定入口模塊的路徑。
{
"name": "cat",
"main": "./lib/main.js"
}
Linux
在Linux系統下,我們可以把JS文件當作shell腳本來運行,從而達到上述目的,具體步驟如下:
-
在shell腳本中,可以通過#!註釋來指定當前腳本使用的解析器。所以我們首先在node-echo.js文件頂部增加以下一行註釋,表明當前腳本使用NodeJS解析。
#! /usr/bin/env node
NodeJS會忽略掉位於JS模塊首行的#!註釋,不必擔心這行註釋是非法語句。
-
然後,我們使用以下命令賦予node-echo.js文件執行權限。
$ chmod +x /home/user/bin/node-echo.js
-
最後,我們在PATH環境變量中指定的某個目錄下,例如在/usr/local/bin下邊創建一個軟鏈文件,文件名與我們希望使用的終端命令同名,命令如下:
$ sudo ln -s /home/user/bin/node-echo.js /usr/local/bin/node-echo
這樣處理後,我們就可以在任何目錄下使用node-echo命令了。
Windows
在Windows系統下的做法完全不同,我們得靠.cmd文件來解決問題。假設node-echo.js存放在C:\Users\user\bin目錄,並且該目錄已經添加到PATH環境變量裏了。接下來需要在該目錄下新建一個名爲node-echo.cmd的文件,文件內容如下:
@node "C:\User\user\bin\node-echo.js" %*
這樣處理後,我們就可以在任何目錄下使用node-echo命令了。
NPM
下載三方包
需要使用三方包時,首先得知道有哪些包可用。雖然npmjs.org提供了個搜索框可以根據包名來搜索,但如果連想使用的三方包的名字都不確定的話,就請百度一下吧。
$ npm install argv
...
[email protected] node_modules\argv
如果使用到的三方包比較多,在終端下一個包一條命令地安裝未免太人肉了。因此NPM對package.json的字段做了擴展,允許在其中申明三方包依賴。因此,上邊例子中的package.json可以改寫如下:
{
"name": "node-echo",
"main": "./lib/echo.js",
"dependencies": {
"argv": "0.0.2"
}
}
發佈代碼
第一次使用NPM發佈代碼前需要註冊一個賬號。終端下運行npm adduser,之後按照提示做即可。賬號搞定後,接着我們需要編輯package.json文件,加入NPM必需的字段。接着上邊node-echo的例子,package.json裏必要的字段如下。
{
"name": "node-echo", # 包名,在NPM服務器上須要保持唯一
"version": "1.0.0", # 當前版本號
"dependencies": { # 三方包依賴,需要指定包名和版本號
"argv": "0.0.2"
},
"main": "./lib/echo.js", # 入口模塊位置
"bin" : {
"node-echo": "./bin/node-echo" # 命令行程序名和主模塊位置
}
}
-
NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。
-
使用npm help <command>可查看某條命令的詳細幫助,例如npm help install。
-
在package.json所在目錄下使用npm install . -g可先在本地安裝當前命令行程序,可用於發佈前的本地測試。
-
使用npm update <package>可以把當前目錄下node_modules子目錄裏邊的對應模塊更新至最新版本。
-
使用npm update <package> -g可以把全局安裝的對應命令行程序更新至最新版。
-
使用npm cache clear可以清空NPM本地緩存,用於對付使用相同版本號發佈新版本代碼的人。
-
使用npm unpublish <package>@<version>可以撤銷發佈自己發佈過的某個版本代碼。