我正在尝试创建一个CLI工具(在NPM上的Node中),该工具使用Brunch创建一个应用程序。
因此,基本上,预期的行为是用户将键入此内容以安装我的工具:
npm install -g my-cli-tool
然后,要在名为
myApp
的子目录中创建一个新的Brunch项目,他们将在其终端中运行该项目:my-cli-tool myApp
早午餐将处理创建应用程序本身的大部分工作。
仅供参考,您可以通过全局安装Brunch(
npm install -g brunch
)然后简单地键入brunch new myApp
来创建Brunch项目。我已经设置了制作暴露二进制文件的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.');
}
它可以按预期工作,但问题是,安装早午餐(
npm install --save brunch
)将在当前工作目录内创建一个node_modules
文件夹以及一个package.json
文件。理想情况下,除了创建名为
myApp/
的文件夹(由Brunch自己完成)以外,我希望当前工作目录保持不变。本质上,我想使用Brunch来生成应用程序,而无需任何安装Brunch本身的痕迹。我看过
npm pack
,但不确定如何将其应用于用例。任何帮助,将不胜感激,谢谢。 最佳答案
每次创建应用程序时都安装早午餐是很疯狂的
没有人需要包装纸周围的包装纸
解决方案:将早午餐放入your-awsesome-cli-tool
的依赖项中,然后从您的包目录中调用它