我正在尝试创建一个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的依赖项中,然后从您的包目录中调用它

09-08 00:07