位置: 编程技术 - 正文

解析Node.js基于模块和包的代码部署方式(nodejs解析路径)

编辑:rootadmin

推荐整理分享解析Node.js基于模块和包的代码部署方式(nodejs解析路径),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js解析json,nodejs解析html,nodejs解析html,node解析前端formdata数据,node.js解析json,node解析html,nodejs解析路径的方法,node.js解析json,内容如对您有帮助,希望把文章链接给更多的朋友!

模块路径解析规则

有经验的 C 程序员在编写一个新程序时首先从 make 文件写起。同样的,使用 NodeJS 编写程序前,为了有个良好的开端,首先需要准备好代码的目录结构和部署方式,就如同修房子要先搭脚手架。本章将介绍与之相关的各种知识。

模块路径解析规则我们已经知道,require函数支持斜杠(/)或盘符(C:)开头的绝对路径,也支持./开头的相对路径。但这两种路径在模块之间建立了强耦合关系,一旦某个模块文件的存放位置需要变更,使用该模块的其它模块的代码也需要跟着调整,变得牵一发动全身。因此,require函数支持第三种形式的路径,写法类似于foo/bar,并依次按照以下规则解析路径,直到找到模块位置。

内置模块

如果传递给 require 函数的是 NodeJS 内置模块名称,不做路径解析,直接返回内部模块的导出对象,例如 require('fs')。

node_modules 目录

NodeJS 定义了一个特殊的 node_modules 目录用于存放模块。例如某个模块的绝对路径是 /home/user/hello.js,在该模块中使用 require('foo/bar') 方式加载模块时,则 NodeJS 依次尝试使用以下路径。

NODE_PATH 环境变量

与 PATH 环境变量类似,NodeJS 允许通过 NODE_PATH 环境变量来指定额外的模块搜索路径。NODE_PATH 环境变量中包含一到多个目录路径,路径之间在 Linux 下使用:分隔,在 Windows 下使用;分隔。例如定义了以下 NODE_PATH 环境变量:

解析Node.js基于模块和包的代码部署方式(nodejs解析路径)

NODE_PATH=/home/user/lib:/home/lib当使用 require('foo/bar')的方式加载模块时,则 NodeJS 依次尝试以下路径。

我们已经知道了 JS 模块的基本单位是单个 JS 文件,但复杂些的模块往往由多个子模块组成。为了便于管理和使用,我们可以把由多个子模块组成的大模块称做包,并把所有子模块放在同一个目录里。

在组成一个包的所有子模块中,需要有一个入口模块,入口模块的导出对象被作为包的导出对象。例如有以下目录结构。

其中 cat 目录定义了一个包,其中包含了 3 个子模块。main.js 作为入口模块,其内容如下:

在其它模块里使用包的时候,需要加载包的入口模块。接着上例,使用 require('/home/user/lib/cat/main')能达到目的,但是入口模块名称出现在路径里看上去不是个好主意。因此我们需要做点额外的工作,让包使用起来更像是单个模块。

index.js当模块的文件名是 index.js,加载模块时可以使用模块所在目录的路径代替模块文件路径,因此接着上例,以下两条语句等价。

这样处理后,就只需要把包目录路径传递给 require 函数,感觉上整个目录被当作单个模块使用,更有整体感。

package.json如果想自定义入口模块的文件名和存放位置,就需要在包目录下包含一个 package.json 文件,并在其中指定入口模块的路径。上例中的 cat 模块可以重构如下。

其中package.json内容如下。

如此一来,就同样可以使用 require('/home/user/lib/cat')的方式加载模块。NodeJS 会根据包目录下的 package.json 找到入口模块所在位置。

详解Node.js包的工程目录与NPM包管理器的使用 工程目录了解了以上知识后,现在我们可以来完整地规划一个工程目录了。以编写一个命令行程序为例,一般我们会同时提供命令行模式和API模式两种

Node.js本地文件操作之文件拷贝与目录遍历的方法 文件拷贝NodeJS提供了基本的文件操作API,但是像文件拷贝这种高级功能就没有提供,因此我们先拿文件拷贝程序练手。与copy命令类似,我们的程序需要

使用Node.js处理前端代码文件的编码问题 使用NodeJS编写前端工具时,操作得最多的是文本文件,因此也就涉及到了文件编码的处理问题。我们常用的文本编码有UTF8和GBK两种,并且UTF8文件还可能

标签: nodejs解析路径

本文链接地址:https://www.jiuchutong.com/biancheng/370669.html 转载请保留说明!

上一篇:快速掌握Node.js环境的安装与运行方法(快速掌握押韵技巧)

下一篇:详解Node.js包的工程目录与NPM包管理器的使用(node·js)

  • 房产税的房产原值是什么
  • 多交了企业所得税,下年度退税,需要更正撒意思
  • 什么叫做负税
  • 劳务外包人员在本公司可报销吗
  • 差旅费的现金流
  • 核定征收的收入总额包括营业外收入吗
  • 非营利组织可以开发票吗
  • 年报中资产总额和所有者权益都填0
  • 企业持有到期债券的风险
  • 行政事业单位的会计核算可以采用权责发生制吗
  • 行政单位现金日记账填写样本
  • 保证金交易收益率
  • 车辆购置税过户流程
  • 对方电子承兑发出多长时间可以到账
  • 减少实收资本会引起资产和所有者权益发生变化吗
  • 汇算清缴需要调增的费用
  • 验旧作废发票遗失了如何验旧?
  • 公司利润如何提高
  • 股东个人所得税怎么申报
  • 财务中暂估入账会计分录
  • 先计提社保还是先计提工资
  • vc_runtimeMinimum_x64.msi 找不到的解决方法
  • 利空啥意思
  • svchost程序错误怎么修复
  • 发票已付款未认账怎么办
  • 什么是主营业务税金及附加
  • 辛华达瀑布,加拿大贾斯珀国家公园 (© Schroptschop/Getty Images)
  • 解决科学文化领域的矛盾应坚持的方针是
  • 初雪与最后的秋天的区别
  • 资产减值损失属于损益类的收入还是费用
  • php获取本机ip地址
  • 怎么用ai做vi
  • 什么是重绘和回流
  • web前端基础教程
  • 中兴网管操作手册
  • 美国大学数学系排名
  • 小规模纳税人增值税月末处理
  • 装修公司管理费是什么
  • 增值税专用发票丢了怎么补救
  • Python数学建模三剑客
  • 怎么开电子专用增值税发票
  • centos7源码包安装
  • mongodb 安装
  • 劳动保护的各项支出列入工资总额的范围吗
  • 以前年度多计提增值税
  • 资产负债表中衍生金融资产项目应根据什么科目填列
  • 哪些合同不用计提印花税
  • 单位出租不动产,按照5%的征收率计算应纳税额
  • 买方的现金折扣会计分录
  • 注册资本认缴与注册登记实操
  • 员工报销工伤险怎么报销
  • 持有至到期投资账务处理
  • 收到货物抵账的会计分录
  • 材料成本多少合适
  • 机票退票费计入什么科目
  • 季节性停工计入成本吗
  • 固定资产计提折旧的会计科目
  • 各种会计凭证的填制
  • 新开办企业如何建账
  • Mysql 数据库 拷贝 原文件
  • mac salad
  • windows8安装步骤
  • 进windows花屏
  • 在Linux命令行中快速删除光标前的快捷键是什么?
  • Win7系统电脑开机无法进入桌面
  • 日历插件vue
  • nodejs的理解
  • 将txt文件名批量导入excel
  • js设置标签内容
  • pythion
  • python xml 解析
  • javascript高级教程pdf
  • jquery插件开发方法
  • 国际税务局邮箱是多少
  • 不用税控盘可以勾选发票吗
  • 盼之代售怎么下载
  • 买辆12万的车上路共需要多少钱
  • 小规模印花税2023减半吗
  • 关于切实加强建筑施工领域安全防范工作
  • 商品房增值税如何算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设