js修改所有网站上带有关键字的_「无废话」基础知识速查手册 of NODE.JS
news/
2024/5/20 8:36:25/
文章来源:https://blog.csdn.net/weixin_40008946/article/details/113085322
参考资料:
1.《Node.js 权威指南》
一、Node.js 中的控制台
- console.log:标准化打印
- console.time && console.timeEnd:测试函数执行时间
- console.trace:打印函数调用栈
- console.assert:穷人版单元测试
二、Node.js 中的模块
- 模块的定义:一个 JS 文件
- 打印模块的全部信息:console.log(module)
- 模块中「全局变量」或「函数」的作用范围:被限定在该模块内
- 导出模块的「全局变量」或「函数」:module.exports
- 相互关系:exports 是 module 的属性,导出的「全局变量」或「函数」是 exports 的属性
- require 的用途:加载一个模块
- 加载一个模块会发生什么:加载模块时将运行模块文件中的每一行代码;加载模块会缓存在内存缓存区,对相同模块的多次引用不会引起模块内代码的多次执行;可以使用模块内用 exports 导出的「全局变量」与「函数」;
- require 的寻址方式:导入模块会判断是「核心模块」、「文件模块」、「第三方模块」,核心模块直接引入(如 fs、http、event),文件模块通过路径引入,第三方模块从 node_module 中引入(寻址路径在 module.paths 中)
- 查询带有完整绝对路径的模块文件名:require.resolve()
- 查看缓存区的模块:console.log(require.cache)
- 获取当前文件名:console.log(__filename)
- 获取当前目录的完整绝对路径:console.log(__dirname)
三、Node.js 的全局函数
- 查看全局对象:console.log(global)
- 何为全局函数:所有的全局函数都是 global 全局对象的属性,包括 setTimeout、setInterval、setImmediate(仅 IE 10 以上支持)、queueMicrotask 等
- setTimeout() && clearTimeout():定时器,n 秒后回调
- setInterval() && clearInterval():定时器,每 n 秒回调一次
四、Node.js 的 npm 包管理机制
4.1 模块的概念
- 模块的概念:每一个模块都是一个 JavaScript 脚本文件
- 可以引入的模块文件:.js JavaScript 脚本文件、.json JSON 文本文件、.node 编译后的二进制模块文件
- 相对路径:./ 当前目录;
- 绝对路径:"/" 前缀(UNIX 中指根目录,WINDOWS 中指磁盘根目录)
- 从 node_modules 目录中加载模块:如果 require 函数中直接指定文件名,但不指定路径;则 Node.js 将该文件视为 node_modules 目录下的一个文件,会从其所在目录的 node_modules 文件夹寻找,如果找不到就找上级文件夹中的 node_modules,直至找到为止(或找到根目录依旧没有找到)
- 使用目录来管理模块:可以将目录名指定为模块名,但需要为该目录指定一个入口点。
- 使用目录来管理模块的入口点:该目录下创建一个 package.json 文件,其中 "name" 为「模块名」,"main" 为「模块文件」
- 模块对象的属性:
- module.id - 模块的 ID(主模块为 “.”;其它模块为该模块文件的绝对路径;在模块文件中可以修改当前模块的 ID)
- module.filename - 模块的文件名
- module.loaded - 模块是否加载完毕
- module.parent - 当前模块的父模块对象
- module.children - 当前模块的所有子模块对象
4.2 包的概念
- 包的概念:一个包含了 package.json 文件的目录(通常还会在 bin 子目录存放二进制文件,在 lib 子目录存放 JavaScript 文件、在 doc 子目录存放说明文档、在 test 子目录存放单元测试文件)
- package.json 文件的结构:
- name:包名。包名是唯一的,由小写数字、数字、下划线组成。
- preferglobal:是否支持全局安装
- description:包说明
- version:版本号
- author:作者信息数组;每个数组元素可以包含 name、email、web(作者网址)
- maintainers:维护者信息组;每个数组元素可以包含 name、email、web
- bugs:bug 的提交地址,可以是网址或电邮地址
- licenses:许可证数组;每个数组元素可以包含 type(许可证名称)和 url(链接到许可证文本的地址)
- repository:仓库托管地址数组;每个数组元素可以包含 type(仓库类型,如 Git)、url(仓库地址)、path(相对于仓库的路径)
- keywords:关键字数组,用于搜索
- dependencies:本包所依赖的包,由包名和版本号组成
- npm 包管理工具:该工具可以用于从第三方网站下载 Node.js 包
- 搜索并查看 forever 包的信息:npm search forever
- 查看 forever 的 package.json 中的信息:npmview forever
- 将 forever 包安装在命令行提示窗口当前目录下的 node_modules 子文件夹中:npm install foreve
- 安装 forever 包在全聚德安装路径中:npm install -g forever
- 查看全局包的安装路径:npm root -g
- 查看当前路径下安装的所有包:npm list(-g)
- 卸载 forever 包:npm uninstall forever(-g)
- 升级 forever 包:npm update forever(-g)
- 升级所有的包:npm update(-g)
- 安装全部的包:npm install ;这时会把整颗依赖树的依赖都安装上;
- dependencies 和 devDependencies 的区别:在本地运行时没有区别,都会被安装上;但是在 npm 发布后就有区别——当别人使用 npm install xxx 安装你发布的 xxx 包时,对方只会下载你的 dependencies 中的包,不会下载 devDependencies 中的包。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_803549.aspx
如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!