乐趣区

关于javascript:前端培训中级阶段45-node-10x-环境搭建NPM-包管理器

前端最根底的就是 HTML+CSS+Javascript。把握了这三门技术就算入门,但也仅仅是入门,当初前端开发的定义曾经远远不止这些。前端小课堂(HTML/CSS/JS),本着晋升技术水平,打牢基础知识的中心思想,咱们开课啦(每周四)。

上节课咱们理解到了一个能够 在本地执行 js 的 javascript 执行环境:NodeJS。明天咱们来装置 NodeJS、环境配置、NPM 应用、版本治理。

举荐应用 node 10.x 版本(2018 年,最新是 10.22.1),下文咱们基于 v10.16.0 版本。

装置 NodeJS

用软件就要装置,不会吧,不会有拷贝一个快捷方式的憨憨吧

windows

windows 装软件就是抉择一个适宜版本,而后下载双击关上,无脑下一步即可

  1. node-v12.18.4-x86.msi 32 位
  2. node-v10.22.1-x64.msi 64 位

linux

  1. 包管理工具。个别装的版本都不行,能够再批改一下版本

    sudo apt-get install nodejs
    sudo apt-get install npm
  2. 源码编译。操作起来很麻烦

    sudo git clone https://github.com/nodejs/node.git
    sudo chmod -R 755 node
    cd node
    sudo ./configure
    sudo make
    sudo make install
  3. 应用已编译好的包。

    wget https://nodejs.org/dist/v10.22.1/node-v10.22.1-linux-x64.tar.xz    
    tar xf  node-v10.9.0-linux-x64.tar.xz
    cd node-v10.9.0-linux-x64
    ./bin/node -v 

macOS

因为穷,所以我没有 mac。从网上扣一个吧。

你能够通过以下两种形式在 Mac OS 上来装置 node:

  • 1、在官网下载网站下载 pkg 安装包,间接点击装置即可。
  • 2、应用 brew 命令来装置:brew install node

环境配置

环境变量是为了不便执行的时候找到对应的程序,不然的话只能每次应用的时候先手动找到文件,而后再应用。

windows 环境变量

默认配置:1. C:\Windows\system32;C:\Windows
cmd 命令提示行中输出 path 能够查看以后的配置。
不过我个别是通过界面的形式设置:我的电脑(右键),属性,高级零碎设置,高级,环境变量,而后给以后用户批改 PATH

linux 环境变量

默认配置:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

linux 个别是间接应用软连的形式,放入 /usr/local/bin 中。

ln -s /usr/software/nodejs/bin/npm /usr/local/bin/ 
ln -s /usr/software/nodejs/bin/node /usr/local/bin/

NPM

NPM 是伴随 NodeJS 一起装置的包管理工具

NPM 的装置

因为 nodejs 曾经集成了 npm,所以之前 npm 也一并装置好了。同样能够通过输出 npm -v 来测试是否胜利装置。

package.json 和 npm init

package.json 位于模块的目录下,用于 定义包的属性

  • name 包名
  • version 版本号
  • description 形容
  • main 入口文件。指定程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录上面的 index.js。
  • scripts 快捷命令
  • keywords 关键词
  • author 作者
  • license 开源协定
  • 依赖(开发时 devDependencies、运行时 dependencies)。
  • homepage 包的官网 url。
  • contributors 包的其余贡献者姓名。
  • repository 包代码寄存的中央的类型,能够是 git 或 svn,git 可在 Github 上。

咱们能够通过 npm init 交互式的创立 package.json 文件。
也能够通过 npm init -y 快捷的创立,-y 意思是所有抉择都选 Yes。

{
  "name": "node-sf-20200922",
  "version": "1.0.0",
  "description": "","main":"index.js","scripts": {"test":"echo \"Error: no test specified\" && exit 1"},"keywords": [],"author":"'linong'<'lilnong1@126.com'> ('')","license":"ISC","dependencies": {"express":"^4.17.1"},"devDependencies": {"gulp":"^4.0.2"}
}

npm 包治理

npm install <package> 用于安装包,装置分为两种:

  • 本地装置(local)。装置之后放在了工程目录下的 node_modules 目录中,代码中只须要通过 require(‘express’) 就能够应用。
  • 全局装置(global)。将安装包放在你 node 的装置目录。

npm uninstall <package> 卸载 Node.js 模块
npm update <package> 更新 Node.js 模块

npm install <package> # 本地装置 
npm install <package> -g # 全局装置

npm install、npm install –save、npm install –save-dev

来个题 npm installnpm install --savenpm install --save-dev 有什么不同?

  1. npm install <package>:装置模块到我的项目目录下

    1. 装置模块到我的项目 node_modules 目录下。
    2. 不会 批改 package.json 文件。
    3. 运行 npm install 初始化我的项目时不会下载模块。
  2. npm install <package> -g-g 将模块装置到全局,具体装置到磁盘哪个地位,要看 npm config prefix 的地位。查看:npm config ls, 批改:npm config set prefix.

    1. 装置模块到全局,不会在我的项目 node_modules 目录中保留模块包。
    2. 不会 批改 package.json 文件。
    3. 运行 npm install 初始化我的项目时不会下载模块。
  3. npm install <package> --save:(简写:-S)-save 将模块装置到我的项目目录下,并在 package 文件的 dependencies 属性写入依赖。

    1. 装置模块到我的项目 node_modules 目录下。
    2. 在 package.json 文件的 dependencies 属性将模块依赖写入。
    3. 运行 npm install 初始化我的项目时,会将模块下载到我的项目目录下。
    4. 运行 npm install --production 或者注明 NODE_ENV 变量值为 production 时, 主动下载模块到 node_modules 目录中。
  4. npm install <package> --save-dev:(简写:-D)-save-dev 将模块装置到我的项目目录下,并在 package.json 文件的 devDependencies 属性写入依赖。

    1. 装置模块到我的项目 node_modules 目录下。
    2. 在 package.json 文件的 devDependencies 属性将模块依赖写入。
    3. 运行 npm install 初始化我的项目时,会将模块下载到我的项目目录下。
    4. 运行 npm install –production 或者注明 NODE_ENV 变量值为 production 时,不会 主动下载模块到 node_modules 目录中。

应用准则:运行时须要用到的包应用 --save,否则应用 --save-dev

devDependencies 属性下的模块是咱们在开发时须要用的,比方我的项目中应用的 gulp,压缩 css、js 的模块。这些模块在咱们的我的项目部署后是不须要的,所以咱们能够应用 -save-dev 的模式装置。

express 这些模块是我的项目运行必备的,应该装置在 dependencies 属性下,所以咱们应该应用 -save 的模式装置。

npm 版本号

应用 NPM 下载和公布代码时都会接触到版本号。NPM 应用语义版本号来治理代码,这里简略介绍一下。

语义版本号分为 X.Y.Z 三位,别离代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下准则更新。

  • 如果只是修复 bug,须要更新 Z 位。
  • 如果是新增了性能,然而向下兼容,须要更新 Y 位。
  • 如果有大变动,向下不兼容,须要更新 X 位。

版本号有了这个保障后,在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范畴的版本号。例如 ”argv”: “0.0.x” 示意依赖于 0.0.x 系列的最新版 argv。

NPM 反对的所有版本号范畴指定形式能够查看官网文档。

其余命令

  • 应用 npm cache clear 能够清空 NPM 本地缓存,用于凑合应用雷同版本号公布新版本代码的人。
  • npm install -g cnpm --registry=https://registry.npm.taobao.org 你能够应用淘宝定制的 cnpm (gzip 压缩反对) 命令行工具代替默认的 npm
  • npm search express 搜寻模块
  • npm list -g 查看所有全局装置的模块

NodeJS 版本治理

写前端的时候咱们头疼的是 用户用一些奇奇挂怪的浏览器 ,写 Node 的时候也有头疼的 不同的包依赖不同的版本 。所以这就要求咱们能够切换版本, 至多要求咱们首次应用的时候能够疾速的找到适合的版本(我举荐 10.x 版本,我用着还能够)。

windows 装置还好,从习惯上来讲都是下载、双击、无脑下一步。

linux 就有点头疼了,命令下载、解压、装置、配置环境变量(或者软连到 /usr/bin 上面)。

n

n 是交互式 node.js 版本管理工具。

npm install n -g #装置 n
n lts  #装置最新版
n stable #装置稳定版
n #切换版本
n rm  #删除版本

nvm

nvm 也是 Node 版本管理工具。

下载安装

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

命令

nvm install node # 装置最新版本,node 是最新版本的别名
nvm install 6.14.4 # 装置特定版本
nvm ls-remote # 列出可用版本
nvm use node # 抉择应用的版本

微信公众号:前端 linong

参考文献

  1. 前端培训目录、前端培训布局、前端培训打算
退出移动版