首页 > 解决方案 > 运行 npx 服务时未加载 Index.html(caddy、nodejs)

问题描述

我在 node.js 上运行 fastify,并使用 Caddy 服务器将 localhost 反向代理到一个域(authsvc.dev),该域在这个 UI 项目中提供一个 index.html 文件。

直到几天前,一切都运行良好。现在,当我运行时,我npm run ui在控制台中收到以下错误消息。未提供 index.html 文件。src/public/index.html 文件存在并且几天前可以使用,但可能有一些问题npx serve {{path-to-file}}?请帮忙!

ERROR: Not able to read /{{path-to-proj}}/ui/src/public/index.html/serve.json: ENOTDIR: not a directory, open '/{{path-to-proj}}/ui/src/public/index.html/serve.json'
npx serve src/public/index.html exited with code 1

不确定 index.html/serve.json 在哪里或为什么试图被读取以及如何修复它。

我正在运行 macOS Big Sur v11.6

我尝试过的一些事情。

  1. 删除 node_modules 和npm install
  2. 删除 package-lock.json 和npm install
  3. 更新到最新的 npm
  4. 更改为不同版本的节点(现在在 v14.15.1 上)
  5. 清除 npm 缓存rm -rf ~/.npm npm clear cache
  6. npx serve src/public/-- 让我看到我在什么时候localhost:5000,但不是authsvc.dev

我确实让 Caddy 运行并设置了反向代理。

{
  local_certs
}

authsvc.dev {
  reverse_proxy 127.0.0.1:5000
}

api.authsvc.dev {
  reverse_proxy 127.0.0.1:4000
}

主机文件

127.0.0.1 authsvc.dev
127.0.0.1 api.authsvc.dev

package.json 脚本

  "scripts": {
    "all": "concurrently \"npm run server\" \"cd ../ui\" \"npm run ui\"",
    "server": "cd ../api && npm run start",
    "ui": "concurrently \"nodemon src/index.js\" \"npx serve src/public/index.html\"",
    "ui1": "nodemon src/index.js",
    "ui2": "npx serve src/public/",
    "caddy": "caddy run",
    "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watchAll"
  },
  "dependencies": {
    "colors": "^1.4.0",
    "concurrently": "^6.2.2",
    "cross-fetch": "^3.1.4",
    "dotenv": "^10.0.0",
    "fastify": "^3.22.0",
    "fastify-static": "^4.2.3"
  }

npm run all 的结果

标签: node.jsnpmnpxfastifyserve

解决方案


服务不应采用 .html 文件,而是包含您的整个网站的文件夹。
你可以试试这个命令 : serve src/public/,没有npx前缀,通常它应该可以工作


推荐阅读