Node.js(第三方模块和npm)
模块
使用文件夹(自定义)
-app.js
-family
–module_a.js
–module_b.js
–module_c.js
–index.js
我们将module_a.js和module_b.js放入了一个叫做family的文件夹中,被index.js“统领”。
family/index.js
var module_a=require('./module_a.js');
var module_b=require('./module_b.js');
var module_c=require('./module_c.js');
exports.module_a=module_a;
exports.module_b=module_b;
exports.module_c=module_c;
app.js
let family=require('./family')
console.log(family.module_a.a);
console.log(family.module_b.b);
需要注意,当我们require()的时候,如果没有写.js后缀,此时nodejs将认为我们在引入一个文件夹,此时将会自动引入这个文件夹中的index.js文件。
// 也就是说
var jihe = require("./jihe");
等价于:
var jihe = require("./jihe/index.js");
修改入口文件
配置文件:
package.json
定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、
版本、许可证等元数据)
{
"name": "family",
"version": "1.0.0",
"main": "app.js"
}
注意!./不能省!!
使用内置的node_modules 文件夹
-app.js
-node_modules
–family
—module_a.js
—module_b.js
—module_c.js
—index.js
app.js引用index.js文件的时候,此时require的特别漂亮!
let family=require('family')
console.log(family.module_a.a);
也就是说:
require的形式 | 引用的谁 |
---|---|
require("./a.js") | 同目录的a.js文件 |
require("./a") | a文件夹中的index.js文件 |
require(“a”) | node_modules文件夹中的a文件夹中的index.js文件 |
require(“a.js”) | node_modules文件夹中的a.js |
模块的概念
当一个js文件可以独立完成一个事情,这个js文件就是一个模块。
当一些js文件共同配合完成一个事情,这些js文件就是一个模块。
模块(module,不是model模型)是一个文件的功能性的、组织性的概念,不是物理性的概念。
juxing.js是一个模块,因为它可以独立完成关于矩形的所有计算。
yuan.js也是一个模块,因为它可以独立完成关于圆形的所有计算。
他们结合在一起,成为jihe文件夹,jihe又称一个新模块。
npm
官网:https://www.npmjs.com/
npm就是node package manager的意思
node包管理器。
依赖
dependencies:运行依赖jquery、vue、react(上线后依然需要 )
devDependencies:开发依赖 sass less(开发时方便,打包编译之后就无用了)
我们从npm上下载的node_modules文件夹称之为依赖。
此时我们可以用package.json文件管理这些依赖,我们称为项目的“身份证”。
我们在开发项目的时候,第一步就是创建一个项目的身份证。
npm init
就会显示一个调查问卷。将引导你创建这个身份证。
他会询问你包名字、版本、描述、入口文件、测试命令、git网址、关键词、作者、版权协议。
你回答一下,系统会猜测一些答案就是括号中的内容,直接按回车就是使用它。
系统会创建这个文件:
package.js
今后安装依赖的时候要加上–save后缀,比如:
npm install jquery–save
此时加上–save之后,我们身份证会自动在package.js文件更新一个依赖项
安装淘宝镜像
http://www.npmjs.org
npm 包官网
https://npm.taobao.org/
淘宝 npm 镜像官网
淘宝NPM镜像是一个完整npmjs.org镜像,你可以用此代替官方版本(只读),同步频
率目前为 10 分钟 一次以保证尽量与官方服务同步。
我们可以使用我们定制的 cnpm (gzip 压缩支持)命令行工具代替默认的 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org