我正在尝试使用Brunch创建一个使用创建应用的CLI工具(在NPM中的Node中)。
基本上,预期的行为是用户会输入它来安装我的工具:
npm install -g my-cli-tool
然后,要在名为myApp
的子目录中创建一个新的Brunch项目,他们将在他们的终端中运行它:
my-cli-tool myApp
早午餐将处理创建应用程序本身的大部分工作。
仅供参考,您可以通过全局安装Brunch(npm install -g brunch
)然后只需输入brunch new myApp
来创建早午餐项目。
我已经设置了制作暴露二进制文件的NPM包的必要内容,所以我将它简化为我的一个脚本。
到目前为止我所尝试的是以下内容:
#! /usr/bin/env node
var shell = require("shelljs");
if (!process.argv[2]) {
console.log('You need to supply a name for your app!');
console.log();
console.log('Try:');
console.log(' my-cli-tool <project-name>');
} else {
var appName = process.argv[2];
console.log('Your app is now being created...');
console.log('Installing Brunch...');
shell.exec('npm install --save brunch');
console.log('Creating app with Brunch...');
shell.exec('PATH=$(npm bin):$PATH brunch new ' + appName);
console.log('Success! Your app is done.');
}
它按预期工作但问题是,安装Brunch(npm install --save brunch
)将在当前工作目录中创建一个node_modules
文件夹以及package.json
文件。
理想情况下,我希望当前工作目录不受影响,除了创建名为myApp/
的文件夹(由Brunch本身完成)。从本质上讲,我想使用早午餐来生成应用程序,而无需任何已安装Brunch本身的痕迹。
我看过npm pack
,但我不确定如何将它应用于我的用例。任何帮助将不胜感激,谢谢。
答案 0 :(得分:2)
your-awsesome-cli-tool
的依赖项中,并从您的包目录中调用它