【发布时间】:2018-12-05 15:52:36
【问题描述】:
我正在 NodeJS 中创建一个 CLI 应用程序,并且该包将在 NPM 上发布。该应用程序非常简单,因为它只有两个文件。这是应用程序的结构:
package.json
{
"name": "mycliapp",
"version": "1.0.0",
"description": "Some description",
"main": "./bin/cli.js",
"preferGlobal": true,
"bin": {
"mycliapp": "bin/cli.js"
},
}
bin/cli.js
const nodePlop = require('node-plop');
const configPath = './bin/config.js';
const plop = nodePlop(configPath, {
force: argv.force || argv.f
});
bin/config.js
{
// some configuration
}
现在,如果我从该目录使用npm install -g 创建符号链接并从同一开发目录运行命令mycliapp,它绝对可以正常工作,但如果我从计算机中的任何其他目录运行此mycliapp 命令, const configPath = './bin/config.js' 试图从当前工作目录而不是从实际的 npm 包中获取,因此找不到配置文件。
我该如何解决这个问题?我尝试将__dirname 和__filename 与path.join 一起使用,但似乎没有任何效果。
我也在 npm 上发布了这个包并从那里安装,同样的问题正在发生。
【问题讨论】:
标签: node.js npm npm-scripts