天天看点

node.js的安装和npm命令详解

简介

  1. node.js是一个基于chrome V8 引擎的 JavaScript 运行环境。
  2. node.js使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
  3. node.js的包管理器 npm , 是全球最大的开源库生态系统

安装

  • 官网地址 : http://nodejs.cn
  • 查看是否安装成功 :
    1. node -v : 查看node.js版本
    2. npm -v : 查看npm版本
    3. node -h : 帮助信息
  • 安装淘宝镜像 : 地址 : http://npm.taobao.org/

    在终端下输入 : npm install -g cnpm --registry=https://registry.npm.taobao.org

一些命令行的基本操作

  1. cd 进入目录
  2. cd… 返回上一级
  3. tab 自动补全内容
  4. ctrl + c 退出操作
  5. cls 清屏
  6. dir 显示文件
  7. mkdir 创建文件夹
  8. rmdir 删除文件夹
  9. type nul > file.text 创建空文件
  10. echo[ content ]>file.text 创建带内容的文件
  11. del flie.text 删除文件

一些安装操作

  • npm安装模块
    1. 局部安装 : npm install xxx
    2. 全局安装 : npm install xxx -g
    3. 查看全局安装的位置 : npm root -g
  • nvm
    1. node version manage : 对node版本的管理
    2. nvm ls :查看版本信息
    3. nvm install v(版本号) : 安装对应版本的nvm
    4. nvm use(版本号) : 使用该版本nvm
  • nrm
    1. node register manage : 对 npm 下载源的管理
    2. npm i -g nrm : 安装
    3. nrm ls : 查看
    4. nrm use : 切换
  • node的一些基本操作
    1. node + 文件路径 : 开启node环境(REPL模式),可直接操作(后置名为.js时,后缀名可以省略)
    2. cnpm install -g nodemon : 安装nodemon , 可以实时侦测文件的变化(相当于VScode的live Server)

浏览器和node.js

  • 浏览器 : 主要进行DOM操作 , document , window
  • node.js : 主要进行计算机底层的操作,数据库,文件,系统,进程等。

node.js的模块

  • 内置的node.js模块 : 就是下载npm之后直接可以使用的模块,不用下载,通过 require()引入即可。
    1. url模块 : url.parse() 会解析一个URL 字符串并返回一个URL对象。第二个参数布尔值true,对query属性解析成对象 。 url.format() : 返回一个urlObject格式化后的URL字符串。方法是parse()方法的相反操作。
    2. querystring模块 : 提供用于解析和格式化URL查询字符串的实用工具。parse():对query的串联字符串进行对象的解析。stringify():parse()的相反操作
//url : 处理 url 地址 ,  web项目 请求 -> 请求url -> 后端就要处理
var url = require('url');
var querystring = require('querystring');
var str = 'http://www.baidu.com/goods/detail.php?id=1&type=phone#abc';
var result = url.parse(str,true);  //对url进行解析的,返回一个对象,第二个参数:可以把 字符串格式化参数 -> 对象形式的数据

           
  1. path : 处理文件路径
    • path.join() : 连接路径
    • path.parse() : 方法可以返回路径各部分的信息。
    • path.relative() : 接受两个路径作为参数 。 基于当前工作目录,返回从第一个路径到第二个路径的相对路径。
    • pth.resolve() : 把一个相对地址转成一个绝对地址
var path = require('path');
const { fileURLToPath } = require('url');
//想拼接两个路径。
console.log( path.join( 'd:\\a\\b' , 'file.txt') );
//__dirname : 当前这个node文件的根目录
//__filename : 当前这个node文件的绝对地址
console.log( path.join( __dirname , 'file.txt') );
//path.parse() : 把路径转成各种信息
console.log( path.parse(__filename) );
console.log( path.relative('d:\\a\\b' , 'd:\\a\\b\\file.txt') );  // file.txt
console.log( path.relative('d:\\a\\b\\file.txt' , 'd:\\a\\b') );  // ..
//可以把一个相对地址转成一个绝对地址
console.log( path.resolve('./file.txt') );  // D:\ke\SZ-GP4\20201012\file.txt
           
  1. fs : 与文件系统交互
    • readFile() : 异步读取文件
    • readFileSync() : 同步读取文件
    • writeFile()异步写入文件
    • writeFileSync : 同步写入文件。
    • appendFile()异步的追加数据到文件,如果文件不存在就创建文件
    • unlink() : 异步的删除文件或者符号链接。
    • rename() : 文件重命名。
    • mkdir() : 创建文件夹。
    • redir() : 删除文件夹。
    • readdir() : 读取文件夹。
    • start():读取文件信息
var fs = require('fs');
//并不是累加,格式重写。
fs.writeFile('./a.txt','hi Node',function(err){});
//累加数据
fs.appendFile('./a.txt','hello vue',function(err){});

//如果文件不存在,就先创建在写入内容
fs.writeFile('./b.txt','hi Node',function(err){});

//删除文件
fs.unlink('./b.txt',function(err){});

//重命名文件
fs.rename('./a.txt','./c.txt',function(err){});

//创建文件夹
fs.mkdir('myApp',function(err){});

//删除文件夹
fs.rmdir('myApp',function(err){});

//读取文件夹
fs.readdir('../20201012',(err,data)=>{
    console.log(data);
});

//读取文件的详细信息
fs.stat('../20201012',(err,data)=>{
         console.log(data);
});
           
  • 自定义的模块
    1. 通过require引入模块
    2. 通过module.exports修改模块。
  • 第三方模块
    1. 下载模块 : cnpm install xxx
    2. 调用模块

npm详解

  • 官网 : https://www.npmjs.com/
  • 关于package.json :

    1. 创建 : npm init 或 npm init -y

    2. scripts : 定义了一组可以运行的 node 脚本。

    - 让调用的命令变得简单。 npm run 脚本的属性。( 例 : npm run serve)

    - 调用局部安装的软件包。如果局部没有这个包,才会找全局的包。直接在命令行中操作 -> 直接找全局的包。

    3. dependencies 设置了作为依赖安装的 npm 软件包的列表。

    - 生成环境 : 上线后用到的代码。

    - 安装方式 : npm i xxx --save (-S) 可以简写为 npm i xxx (默认为 -S方式)

    4. devDependencies 设置了作为开发依赖安装的 npm 软件包的列表。

    - 开发环境 : 包括有 gulp工具 webpack工具 …

    - 安装方式 : npm i xxx --dev-save (简写 : npm i xxx -D);

    5. npm i : 可以根据package.json中的依赖,安装所有用到的地方模块。

    6. npm i --production 只安装生成环境的模块。

    7. npm uninstall -g xxx : 全局删除

    8. npm uninstall -S xxx : 局部生成删除

    9. npm uninstall -D xxx : 局部开发删除

模块版本问题

  • 安装指定版本的模块 : npm i [email protected]
  • 查看具体有哪些版本 : npm view xxx versions
  • 版本 : (3.5.1) 大版本.中版本.补丁版本
    1. latest | * : 最新版本
    2. ^1.2.3 : 大版本是固定,中版本和补丁版本不固定
    3. ~1.2.3 : 大版本和中版本是固定,补丁版本不固定
    4. 1.2.3 : 全部都是固定的
  • 更新 : npm update xxx -> 根据package.json中的版本号来进行升级。
  • 查看项目中的所有过期模块 : outdated
  • 锁定版本 : package-lock.json 。 npm 去下载模块的时候 就会生成 package-lock.json 。如果有package-lock.json这个文件,那么npm i 就不会自动去安装,而是安装锁定的版本。

局部模块的创建

1. 本地把功能先开发好
    2.  npmjs.com 去注册账号
    3. npm addUser : 添加账号
    4. npm publish : 发布到平台上
    5. npm unpublish : 删除包
           

全局模块的创建

1. 开发功能
2. 给index.js 第一行添加命令 :  #! /usr/bin/env node
3. package.json 添加
       "bin": {
            "包名": "index.js"
          }
4. npm link  将全局包安装(实际就是拷贝)到全局中
5. npm publish : 发布到平台上