Node.js 在运行时确定节点模块的位置
我正在构建一个基本上是node.js模块的工具。这个工具可以全局安装(使用Node.js 在运行时确定节点模块的位置,node.js,npm,node-modules,Node.js,Npm,Node Modules,我正在构建一个基本上是node.js模块的工具。这个工具可以全局安装(使用-g选项)。我在模块中只有很少的静态文件来生成报告。如果在本地调用该模块,我可以使用相对路径/node\u modules//static/filename引用静态文件。但是,当该工具作为命令调用时,如何引用静态文件?如何确定该工具是作为本地模块调用还是作为命令调用?使用神奇变量\uu dirname。它指的是包含脚本文件的目录 使用神奇变量\uuu dirname。它指的是包含脚本文件的目录 在全局安装工具时,Unix系
-g
选项)。我在模块中只有很少的静态文件来生成报告。如果在本地调用该模块,我可以使用相对路径/node\u modules//static/filename
引用静态文件。但是,当该工具作为命令调用时,如何引用静态文件?如何确定该工具是作为本地模块调用还是作为命令调用?使用神奇变量\uu dirname。它指的是包含脚本文件的目录
使用神奇变量\uuu dirname。它指的是包含脚本文件的目录
在全局安装工具时,Unix系统上通常有两个条目:
->包含所有模块源文件的目录/usr/local/lib/node\u modules/
->符号链接到模块可执行脚本/usr/local/bin/
\uu dirname
():
var path = require('path');
// assuming this script is in package root directory
var staticFile = path.resolve(__dirname, 'static', 'filename');
// if the script is in lib/ subdirectory, then you want to call
var staticFile = path.resolve(__dirname, '..', 'static', 'filename');
require.resolve()
,它返回与调用require()
使用的文件名完全相同的文件名:
在全局安装工具时,Unix系统上通常有两个条目:
->包含所有模块源文件的目录/usr/local/lib/node\u modules/
->符号链接到模块可执行脚本/usr/local/bin/
\uu dirname
():
var path = require('path');
// assuming this script is in package root directory
var staticFile = path.resolve(__dirname, 'static', 'filename');
// if the script is in lib/ subdirectory, then you want to call
var staticFile = path.resolve(__dirname, '..', 'static', 'filename');
require.resolve()
,它返回与调用require()
使用的文件名完全相同的文件名: