首页 > 解决方案 > 找不到命令:nodejs-backend

问题描述

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

npx ts-config-files.json

这是我创建并发布的npm,它生成tsconfigs.

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

npx nodejs-backend

我明白了:

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

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

我一直在想这是因为我正在使用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?",
    },
  ]);
....

标签: javascriptnode.jstypescriptnpm

解决方案


您忘记添加:

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

哪个应该在package.json.

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

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


推荐阅读