2018年3月24日 星期六

CentOS 安裝 Node.js

[新增 NodeSource repository]
到 Node.js 官網查看安裝說明。(若使用 epel repo 安裝,可能是很舊的版本)
https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora
可知 NodeSource repository 有提供 Node.js
按照說明安裝 NodeSource repos (有奇數版、偶數版,一般使用偶數版)
$ curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
查看系統 repo,可發現已新增 NodeSource repository
$ yum repolist all
....
nodesource/x86_64  Node.js Packages for Enterprise Linux 7 - x86_64  enabled: 74
nodesource-source  Node.js for Enterprise Linux 7 - x86_64 - Source  disabled
....


[Node.js 安裝、指令]
安裝 Node.js 套件
$ yum install nodejs
查看 node.js 版本
$ node -v
v8.10.0
執行 JavaScript 文件。aa.js 內容為 console.log("test")
$ node aa.js
test
也可不輸入附檔名
$ node aa
test
直接執行 JavaScript
$ node -e 'console.log("test")'
test
若只輸入 node,則會進入 REPL(Read-Eval-Print Loop) 環境
$ node
> xyz
ReferenceError: xyz is not defined
> var xyz=6
undefined
> xyz
6
> _+10
16
> xyz
6
> .exit
使用嚴格模式進入 REPL 環境
$ node --use_strict
使用嚴格模式執行 JavsScript 文件
$ node --use_strict aa.js


[npm 指令]
安裝 Node.js 時,也會安裝npm(Node Package Manager)
查看 npm 版本
$ npm -v
5.6.0
查看 npm 設定
$ npm config ls -l
在專案資料夾產生 npm 使用的 package.json 文件(https://docs.npmjs.com/files/package.json)
package.json 會紀錄專案相關資訊,以及安裝的套件版本、相依性...
$ npm init
安裝 package.json 文件內的相依套件(佈署到新環境時,上傳 package.json 即可安裝)
$ npm install
查看 package 資訊
$ npm info [package_name]
$ npm info [package_name] description
$ npm info [package_name] version
搜尋相關 package
$ npm search <關鍵字(可用正規表示式)>
查看目前目錄安裝的 package
$ npm ls
查看全域安裝的 package
$ npm ls -global
查 npm 全域 package 的安裝路徑
$ npm root -g
列出目前目錄安裝的特定package
$ npm ls [package_name] 
在目前目錄安裝 package (加 -save 會將 package 相依性、版本寫在 package.json 文件)
$ npm install [package_name] --save
安裝 package(全域)
$npm install [package_name] -g
安裝指定版本的 package(可用來強制安裝較舊的版本)
$ npm install package_name@latest
$ npm install package_name@0.3.6
升級 package
$ npm update [package_name] --save
移除 package
$ npm uninstall [package_name] --save
通常 npm 版本更新的比 node.js 頻繁,可用以下指令更新 npm 到最新版
$ npm install npm@latest -g
檢查 package 是否有漏洞
$ npm audit
修復 package 漏洞
$ npm audit fix

安裝 package.json 中的全部套件
npm ci 跟 npm install 類似,但可以確保乾淨安裝。
跟 npm install 的差異:
1.必須有 package-lock.json 或 npm-shrinkwrap.json 檔案
2.package lock 跟 package.json 不匹配時,會出錯退出,而不是更新 package lock
3.只能安裝整個專案全部的套件,不能安裝個別套件
4.會先刪除 node_modules 資料夾,再重新安裝
5.永遠不會更新 package.json 或 package-locks
$ npm ci


[Node.js 全域物件]
console:https://nodejs.org/api/globals.html#globals_console
exports:https://nodejs.org/api/globals.html#globals_exports
module:https://nodejs.org/api/globals.html#globals_module
process:https://nodejs.org/api/globals.html#globals_process


[Node.js 全域函式]
Class: Buffer:https://nodejs.org/api/globals.html#globals_class_buffer
clearImmediate(immediateObject):https://nodejs.org/api/globals.html#globals_clearimmediate_immediateobject
clearInterval(intervalObject):https://nodejs.org/api/globals.html#globals_clearinterval_intervalobject
clearTimeout(timeoutObject):https://nodejs.org/api/globals.html#globals_cleartimeout_timeoutobject
setImmediate(callback[, ...args]):https://nodejs.org/api/globals.html#globals_setimmediate_callback_args
setInterval(callback, delay[, ...args]):https://nodejs.org/api/globals.html#globals_setinterval_callback_delay_args
setTimeout(callback, delay[, ...args]):https://nodejs.org/api/globals.html#globals_settimeout_callback_delay_args


[Node.js 全域變數]
__dirname:https://nodejs.org/api/globals.html#globals_dirname
__filename:https://nodejs.org/api/globals.html#globals_filename
require():https://nodejs.org/api/globals.html#globals_require



參考:
Node.js 教程 | 菜鸟教程
05 - Working with package.json | npm Documentation
ls | npm Documentation
npm模块管理器 -- JavaScript 标准参考教程(alpha)
CommonJS规范 -- JavaScript 标准参考教程(alpha)
https://docs.npmjs.com/getting-started/installing-node#3-update-npm
Node.js 概述 -- JavaScript 标准参考教程(alpha)
Global Objects | Node.js v9.9.0 Documentation
Index | Node.js v8.10.0 Documentation


沒有留言:

張貼留言