javascript - 如何在不安装的情况下使用 npm 软件包二进制文件

标签 javascript node.js shell npm

我正在尝试创建一个 CLI 工具(在 Node 中,在 NPM 上),该工具使用 Brunch 创建应用程序.

基本上,预期的行为是用户将键入以下内容来安装我的工具:

npm install -g my-cli-tool

然后,要在名为 myApp 的子目录中创建一个新的 Brunch 项目,他们将在终端中运行此项目:

my-cli-tool myApp

Brunch 将处理创建应用程序本身的大部分工作。

仅供引用,您可以通过全局安装 Brunch (npm install -g brunch) 创建 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 生成应用程序,而不留下任何安装 Brunch 本身的痕迹。

我已经查看了 npm pack 但我不确定如何将其应用到我的用例中。任何帮助将不胜感激,谢谢。

最佳答案

  1. 每次创建应用时都安装 brunch 太疯狂了
  2. 没有人需要包装器周围的包装器
  3. 解决方案:将 brunch 放入 your-awsesome-cli-tool 的依赖项中,并从包目录中调用它

关于javascript - 如何在不安装的情况下使用 npm 软件包二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38755593/

相关文章:

javascript - 我一直在尝试使用分页构建一个 dc.js 数据表。如何修复 'Pagination for dc.table'?

node.js - 如何使用 node-addon-api 保存回调供以后使用?

javascript - Node.JS 停止工作并且控制台充满了点

linux - 使用输入重定向(stdin)取消设置日志名

linux - for 循环 - 每 2 小时执行一次文件,输出--> ssh "new server"执行输出命令

javascript - jquery ui.slider : add click event to display/hide handle

javascript - 在 react 中显示最小和最大长度表单验证错误?

javascript - 使用 Shopify Javascript Buy SDK 通过句柄检索产品

mysql - Angular NodeJs multer upload img req.file 始终未定义

c - fgets 错误消息循环 - C 中的 Linux shell