【问题标题】:command not found: nodejs-backend找不到命令:nodejs-backend
【发布时间】:2021-10-17 13:05:05
【问题描述】:

我正在尝试创建自己的包,该包将通过运行 node package execute npx 来初始化样板项目。我曾经使用node.jsinquirer 创建了一个,它在我运行时工作:

npx ts-config-files.json

这是我在npm 上创建和发布的package,它生成tsconfigs

我刚刚在运行命令时创建的那个:

npx nodejs-backend

我明白了:

npx: installed 135 in 47.951s
command not found: nodejs-backend

而不是收到一些inquirer 消息。我正在处理的代码可以在here找到。

我一直认为这是因为我使用的是typescript,但当我更改为javascript 时,它仍然是一样的。

主文件server.ts的示例代码:

#!/usr/bin/env node
import path from "path";
import inquirer from "inquirer";
import { writeFile, readFile } from "fs/promises";
import fs from "fs";
import helperFunction from "./constants";
import { exec } from "child_process";
import { objJS, objTS } from "./utils";
import chalk from "chalk";

helperFunction.prompt();
const cwd = process.cwd();
const base_name = path.basename(cwd); // node

const main = async () => {
  const baseDir: string = "src";
  let fileName: string = "";
  let packageObject: typeof objTS | typeof objJS;
  const { language } = await inquirer.prompt([
    {
      choices: ["JavaScript", "TypeScript"],
      type: "checkbox",
      default: "TypeScript",
      name: "language",
      message: "which language do you want to use for your backend app?",
    },
  ]);
....

【问题讨论】:

  • npm 上不存在该包,所以 npx 找不到它

标签: javascript node.js typescript npm


【解决方案1】:

你忘了添加:

"bin": {
  "nodejs-backend": "server.ts"
},

应该在package.json中。

在此之后,请确保在尝试使用 npx 之前在您的存储库中添加 npm link,否则它将尝试从 https://registry.npmjs.org 注册表而不是本地安装它。

话虽如此,我很确定它不会作为打字稿执行,即使你已经这样做了(这不是你现在的问题,但它会是)。为此,您可以安装ts-node 并使用#! /usr/bin/env ts-node

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    相关资源
    最近更新 更多