概念
- Node.js平台是在后端运行JavaScript代码,类似于JVM
- NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用
- 由于node安装插件是从国外服务器下载,受网络影响大,速度慢且可能出现异常,所以如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队(阿里巴巴旗下业务阿里云)干了这事,来自官网:“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步,也就是说我们可以使用阿里布置在国内的服务器来进行node安装。
安装NodeJS、NPM、CNPM
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz
tar -xvf node-v10.15.3-linux-x64.tar.xz -C /usr/local/
mv /usr/local/node-v10.15.3-linux-x64 /usr/local/node10.15
ln -s /usr/local/node10.15 /usr/local/node
/usr/local/node/bin/npm install -g cnpm --registry=https://registry.npm.taobao.org
ln -s /usr/local/node/bin/* /usr/sbin/
测试NodeJS是否安装成功
node -v
输出:v10.15.3
npm -v
输出:6.4.1
cnpm -v
输出:
[email protected] (/usr/local/node10.15/lib/node_modules/cnpm/lib/parse_argv.js)
[email protected] (/usr/local/node10.15/lib/node_modules/cnpm/node_modules/npm/lib/npm.js)
[email protected] (/usr/local/node10.15/bin/node)
[email protected] (/usr/local/node10.15/lib/node_modules/cnpm/node_modules/npminstall/lib/index.js)
prefix=/usr/local/node10.15
linux x64 3.10.0-327.el7.x86_64
registry=https://registry.npm.taobao.org
修改npm默认配置路径方法
参考:https://segmentfault.com/a/1190000014919030
Windows安装NodeJs内置的npm,默认会把模块安装在C盘的用户AppData目录下
- 打开cmd命令行,查看当前配置
输入 npm config ls
先看一下当前npm的配置环境
; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.4.1 node/v8.12.0 win32 x64"
; builtin config undefined
prefix = "C:\\Users\\QUN\\AppData\\Roaming\\npm"
; node bin location = D:\Software\Setup\NodeJS\node.exe
; cwd = C:\Users\QUN
; HOME = C:\Users\QUN
; "npm config ls -l" to show all defaults.
- 修改路径,node_modules路径对应prefix
首先在别的盘新建两个目录
D:\Software\Setup\NodeJS\node_global
D:\Software\Setup\NodeJS\node_cache
然后执行
npm config set prefix "D:\Software\Setup\NodeJS\node_global"
npm config set cache "D:\Software\Setup\NodeJS\node_cache"
- 修改环境变量,便于通过node找到依赖模块
npm模块安装的默认全局路径已经改到了相应的文件夹中,但是这时候用户还是无法require这些模块,因为电脑系统现在还不知道你把默认路径给改了,在"我的电脑" -> 右击打开属性 -> 进入环境变量对话框 -> 在系统变量里新建NODE_PATH,输入"D:\Software\Setup\NodeJS\node_global\node_modules"
- 修改环境变量,便于通过npm安装的模块可以直接通过命令输入执行
由于改变了module的默认地址,所以上面的用户变量需要跟着改变,在PATH变量中,需要重新加入"D:\Software\Setup\NodeJS\node_global"这个参数。(由于node全局模块大多数都是提供全局访问的,所以要把"D:\Software\Setup\NodeJS\node_global"加到PATH路径里)
第一个Node程序
vim /tmp/hello.js
'use strict';console.log('Hello, world.');
第一行总是写上'use strict';是因为我们总是以严格模式运行JavaScript代码,避免各种潜在陷阱
node /tmp/helo.js
输出:Hello, world.
使用严格模式
如果在JavaScript文件开头写上'use strict';,那么Node在执行该JavaScript时将使用严格模式。但是,在服务器环境下,如果有很多JavaScript文件,每个文件都写上'use strict';很麻烦。我们可以给Nodejs传递一个参数,让Node直接为所有js文件开启严格模式: node --use_strict hello.js