Node.js中的路径问题

更新日期: 2019-04-28阅读: 2.3k标签: 路径

前端学习过程中,涉及到路径的问题非常多,相对路径,绝对路径等。有时候明明觉得没问题,但是还是会出错。或者说线下没问题,但是到了线上就出现问题,因此弄懂路径问题,非常关键。我们需要知道为什么这个地方既可以使用相对路径,又可以使用绝对路径,为什么有些地方只能使用绝对路径。


一、Node.js中加载模块的路径设置

const myClass = require('./myclass')

上面这段代码是我们在使用Node.js中经常会使用到的代码-引入模块。我们都知道如果加载的是核心模块,直接require(模块名)即可。但是使用本地模块,必须加上路径,这是为什么了?这与模块的查找顺序有关:

node 在查找模块的时候:

  1. 它会先在当前目录的node_modules中查找,是否含有该模块,如果有则直接使用
  2. 如果没有则去上一级目录的node_modules中查找,如果有则使用,如果没有则会一直往上查找,一直到磁盘的根目录,如果还没有则报错

从上面node查找模块的顺序,我们可以知道他会一直在node_modules中查找,但是我们自定义模块都不在node_modules中,因此如果我们想要使用自定义模块,必须加上路径,使得它查找模块直接到我们指定的路径中进行查找。(ps:这是我个人研究的一点看法,可能并不正确,欢迎大家指正。)


二. 关于__dirname和__filename

有些时候,你需要打开一些不在模块系统中的文件来加载数据,但你需要通过当前脚本的路径来找到那个文件。这时候__dirname和__filename变量在这种场景下非常有用。这些变量保存着当前脚本的绝对路径。

__dirname:当前文件的目录的绝对路径,通俗的来说是当前文件的上一级。注意它的路径始终是固定的,与你的光标所在的位置无关(也就是说与你在哪个路径运行node无关)

如上图所示:index.js文件中console.log(__dirname),最终得到的绝对路径是:

xxx\Node.js_in_practice\chapter two\group

最终路径到上一级group为止。

__filename:当前文件的绝对路径,包含当前文件的文件名。

如上图所示:在index.js中的文件路径应该是:

xxx\Node.js_in_practice\chapter two\group\index.js

最终的路径包含文件名。其路径同样与在哪里运行node无关。


原文来自:https://www.cnblogs.com/yinhaiying/archive/2019/04/28/10782303.html


链接: https://www.fly63.com/article/detial/3095

html中的路径:相对路径,绝对路径

html中的路径:指文件存放的位置,在网页中利用路径可以引用文件,完成:插入图像、视频等功能。表示在html中路径的使用方式有两种:相对路径,绝对路径。

JS实现判断DAG图是否有环

调度系统的任务可视化界面需要完成用户可在界面上连线作为任意两个job间的依赖关系,也就是DAG图DAG也就是有向无环图,有向无环图指的是一个无回路的有向图。环是一条至少含有一条边且起点和终点相同的路径。

webpack中路径的理解

webpack 前端打包工具, 开发人员要面对的路径主要是: 打包前的路径(开发环境路径)和打包后的路径(生产环境路径),在webpack.config.js中配置的output.path, output.publicPath, 以及各种插件, loader中的outputPath, publicPath

vue-cli3+工具中,配置路径别名(vue.config.js)

vue-cli 2.x 版本创建项目时,我们可以在 build 文件夹下找到 webpack.base.conf.js 文件,在里面修改 resolve.alias 即可。但是vue-cli 3.0 创建项目时,目录结构精简化,找不到 build 和 config 文件夹

HTML相对路径怎么写

所谓相对路径,就是相对于自己的目标文件位置。那么在HTML中如何写相对路径呢?相对路径的几种写法:1、如果是在同一目录下,有两个文件A.html和B.html:

HTML引入文件的绝对路径、相对路径、根目录

绝对路径指的是文件的真正路径,使用绝对路径链接外部资源,如:图片、超级链接、flash、音频、视频等等。使用绝对路径必须输入完整的描述路径,这种方法指向的链接目标地址清晰明确

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!