美文网首页
初识NodeJS

初识NodeJS

作者: 叫我小徐 | 来源:发表于2018-08-20 18:24 被阅读0次

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

本文主要对一些NodeJS的基本概念做一个介绍。

模块的引入方式

在NodeJS中,可以通过require命令,引入需要的模块,主要有以下三种方式:

  1. 引入NodeJS提供的内置模块,譬如:http, fs
var fs = require('fs');
  1. 引入第三包,譬如http-server(前提本地已安装了该模块)
var httpServer = require('http-server')
  1. 引入自己封装的模块,譬如API.js,需要特别注意的是:需要加./相对路径,这区别于上面两种方式。
// ① API.js
function test() {
  console.log('欢迎引入该模块');
}
module.exports.say = test;  // 对外暴露test方法

// ② main.js
const API = require('./API.js');
API.say();

// ③ 执行命令  node main.js

Require模块的查找路径

这里主要是针对第三方依赖。在当前文件中引入第三方依赖时,它优先从当前目录的node_modules中查找是否有该模块,若没有,往上一个目录查找,直至根目录。举例如下,有如下目录:

➜  node pwd
/Users/xushufeng/Desktop/node

➜  node ls -al
total 24
drwxr-xr-x   6 xushufeng  staff   192  8 20 17:34 .
drwx------+ 14 xushufeng  staff   448  8 20 14:42 ..
-rw-r--r--   1 xushufeng  staff    70  8 20 14:46 api.js
-rw-r--r--   1 xushufeng  staff    41  8 20 17:23 index.js
drwxr-xr-x  52 xushufeng  staff  1664  8 20 17:34 node_modules
-rw-r--r--   1 xushufeng  staff   329  8 20 17:36 package.json

先从node目录下的node_modules查找,若有则直接使用;若没有,则往上去Desktop目录下的node_modules继续查找,直至根目录。

需要特别注意的是,模块路径的查找与全局安装的模块没有任何关系,
因为全局安装的路径为:/usr/local/lib/node_modules/,找不到这里。

NPM包管理

Node.js 的包管理器 npm,是全球最大的开源库生态系统。

通过NodeJs提供的包管理工具,可以很方便的使用第三方依赖。常用的npm命令有:

  • npm install -g <pkg>: 全局安装,MAC系统下,安装路径为/usr/local/lib/node_modules/,可以在任何地方使用。
  • npm install --save|--save-dev <pkg>: 将依赖安装于当前目录中,package.json文件中的dependencies | devDependencies字段会添加一条该依赖的版本信息
  • npm install: 安装package.json文件中,dependenciesdevDependencies中所有的依赖

另外,如果全局没有安装,又想使用项目中安装的依赖命令时(譬如http-server), 可以使用如下方式:

./node_modules/http-server/bin/http-server

NPM Script

现如今,前端工程化越来越成为一种趋势,在GitHub上面的很多项目中,经常可以看到一个package.json文件, 举例如下:

{
  "name": "node",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "http-server": "^0.11.1"
  },
  "devDependencies": {
    "http-server": "^0.11.1"
  }
}

虽然第三方提供了很多方便的命令行供我们使用,但是每次都要输那么一长串命令,时间长了根本就记不住,这个时候,我们就可以往scripts字段中,配置我们需要的命令。例如:

{
  "scripts": {
    "css:autoprefixer": "postcss -u autoprefixer -r dist/css/*",
    "css:compress": "csso in.css --output out.css",
    "js:lint": "eslint src/js",
    "js:uglify": "mkdir -p dist/js && uglifyjs src/js/*.js -m -o dist/js/app.js",
    "image:imagemin": "app=imagemin-cli npm run check; imagemin src/images dist/images -p",
    "server": "browser-sync start --server --files 'dist/css/*.css, dist/js/*.js'",
    "watch": "onchange 'src/js/*.js' -- npm run css:compress",
    "start": "npm run server"
  }
}
npm run css:autoprefixer
npm start

常用的第三方包

  1. nrm: 快速切换npm源
npm install -g nrm
nrm ls
nrm use taobao
nrm use npm
  1. n: 方便切换NodeJS版本

相关文章

  • 初识Nodejs

    初识Nodejs NodeJs官网 什么是Nodejs Node.js® is a JavaScript runt...

  • 初识nodejs

    初识nodejs nodejs需会工具 nvm工具实现nodejs任意版本切换 npm下载nodejs所需模块 n...

  • 初识NodeJS

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个...

  • 初识NodeJS

    定义 NodeJS is a JavaScript runtime built on Chrome's V8 No...

  • nodejs初识

    参考文章:http://www.runoob.com/nodejs/nodejs-repl.html,这里详细的介...

  • 初识nodejs

    以前听同学说nodejs,即可前端又可后台,让我以为nodejs像是javascript下一种衍生的语言,后来了解...

  • 初识 Nodejs

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个...

  • 初识Nodejs

    Nodejs主要应用领域 1> RESTFul API 2> 实时通信:如消息推送等 3> 高并发 4> I/O阻...

  • 初识NodeJS

    前言 Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它几乎是任何类型项目的流行工具! ...

  • NodeJS(一):初识 NodeJS

    1 NodeJS 是什么 NodeJS 是 javascript 的一种运行环境,是对 Google V8 引擎进...

网友评论

      本文标题:初识NodeJS

      本文链接:https://www.haomeiwen.com/subject/mivliftx.html