Node.js [已解决] 关于 Node 包内部文件路径的问题

hxh1246996371 · 2015年12月16日 · 最后由 hxh1246996371 回复于 2015年12月17日 · 6808 次阅读

是这样的,我写了一个 Node 命令行工具,在我的包中有一个文件夹struct,我想在执行命令的时候把这个文件夹复制到目标项目中。所以我这样写

fs.copyAsync('./struct', <当前目录>)

本地测试是没问题的,但当我发布后,就被告知找不到 struct 文件夹了,其实也好理解,因为在其它目录下执行这样一个全局命令肯定是找不到这个文件夹的,实际上它也许跑到 :/usr/local/lib/node_modules/包名 下面去了。

不知道 Node 有没有提供这样一个方法来获取包中的某个文件在用户机器上的实际路径呢。

找到答案了,用 _dirname 即可,安装在全局环境下的包,执行

console.log(__dirname);

则输出 /usr/local/lib/node_modules/<模块名>/bin

你这个不是常规做法。为什么不直接用 require.

#2 楼 @billy 你指的 require 是什么啊?我这里是做了一个 Node 命令行工具,纯粹复制文件额 https://www.npmjs.com/package/autogo

需要 登录 后方可回复, 如果你还没有账号请 注册新账号