如何获取当前文件名,功能名称和行号?
我想用它来记录/调试的目的,相当于__FILE__,__LINE__ 在C
我--experimental-modules在运行节点应用程序时使用该标志以使用ES6模块.
但是,当我使用此标志时,元变量__dirname不可用.是否有另一种方法可以获得__dirname与此模式兼容的相同字符串?
我在AWS EC2上的Linux上运行了一个Node.JS应用程序,该应用程序使用fs模块读取HTML模板文件.以下是该应用程序的当前结构:
/server.js
/templates/my-template.html
/services/template-reading-service.js
Run Code Online (Sandbox Code Playgroud)
HTML模板将始终位于该位置,但是,模板读取服务可能会移动到不同的位置(更深的子目录等).在模板读取服务中,我使用fs.readFileSync()来加载文件,像这样:
var templateContent = fs.readFileSync('./templates/my-template.html', 'utf8');
Run Code Online (Sandbox Code Playgroud)
这会引发以下错误:
Error: ENOENT, no such file or directory './templates/my-template.html'
Run Code Online (Sandbox Code Playgroud)
我假设这是因为路径'./'正在解析到'/ services /'目录而不是应用程序根目录.我也尝试将路径更改为'../templates/my-template.html'并且有效,但它看起来很脆弱,因为我认为这只是相对于"向上一个目录"进行解析.如果我将模板读取服务移动到更深的子目录,那么该路径将会中断.
那么,相对于应用程序根目录引用文件的正确方法是什么?
如何获取gulpfile的绝对路径(来自gulpfile本身)?
我希望使用该位置作为其他相对路径的参考.
如何使我的 npm 包包含一个名为 的文件template.html,然后在全局安装该包后,我的节点 javascript 应用程序将如何找到该文件的路径以便从磁盘加载它?
node.js ×6
asynchronous ×1
ecmascript-6 ×1
es6-modules ×1
execution ×1
gulp ×1
javascript ×1
linux ×1
npm ×1
packaging ×1
synchronous ×1