Node 模块
可以在a 文件利用 把 b 文件 导入进来执行
使用的是 require(‘./b’) js后缀可以不写
虽然可以执行b 文件 但是 拿不到b的数据 b 也拿不到a的
因为 有模块作用域 (文件作用域)
可以用在 b 文件里面 用 module.export 来把数据暴露出去
完全避免变量命名冲突污染的问题
- ip 地址用来定位计算机
- 端口号用来定位具体的应用程序
- 所有需要联网需要通信的软件 都必需具有端口号
- 端口号返回 0 - 65536之间
在Node 中
可以同时开启多个服务器
但是要保证端口号不一致
NPM 相关命令
npm list 列出npm 当前文件夹下面安装的包
npm outdated 版本对比
npm info 包名 帮我们查找包 相关信息
package.json
可以在 package.json 文件 的 scripts 里面写start : 命令
然后可以在命令行里面 npm start 启动 start 后面的命令
如果配其他 的命令 例: dev
启动的时候 需要 npm run dev (需要加个run命令)
npm发布包
官网 npmjs.com
注册 登陆
把镜像源 切换到 npm 源 nrm use npm
在命令行 npm login (登陆)
用 npm publish (发布)
用 npm publish (修改版本号)
用 npm unshift
YARN
安装
官网下载
检查
yarn --version
使用
yarn init (初始化一个项目 )
yarn add 包名 ( 安装包)
yarn remove 包名 (删除包)
yarn upgrade 包名@版本号 ( 升级包 )
yarn global add 包名 ( 全局安装 )
yarn global remove 包名 ( 全局卸载 )
bower
安装 bower (命令行)
npm install -g bower
检查 ( 命令行 )
bower -v ( 检查版本 )
使用
bower init ( 初始化项目 )
安装
bower install 包名 || bower install 包名#版本号
卸载
bower uninstall 包名
什么是模块化
文件作用域 ( 模块作用域 )
通信规则
加载 require
导出 module.exports
如果你只想导出一个方法或者数据可以
module.exports = add
判断模块标识符
内置模块 和 第三方模块 都不需要 ./ 开头
自定义模块 必须带 ./ || ../
所有第三方模块都必须通过 npm来 下载 本质也是代码
不可能有任何一个第三方包名字和内置模块一样
1.会在当前文件所处目录中的 node_modules 目录
2.node_modules/第三方模块文件/package.json 文件 中的main 属性 main属性中记录了 第三方模块的入口模块
3. 本质上还是加载了一个文件
4.如果没有package.json 文件 || main属性错的
5.会去主动找 index.js
6. 如果上面的条件都没有 会去上一层目录找node_modules
7.如果还没有 一层层的到根目录 如果还没有就报错
模块标识中的 / 和文件路径中的 /
文件操作中的相对路径可以省略 ./
模块加载中的相对路径的 ./ 不能省略
文件操作中的相对路径 如果在前面带个 / 就是去磁盘根目录找