簡體   English   中英

Swagger-JSdoc 不適用於 Node.JS 14.15.4 錯誤“ERR_REQUIRE_ESM”

[英]Swagger-JSdoc is not working on Node.JS 14.15.4 error 'ERR_REQUIRE_ESM'

這不是重復的,我已經研究並檢查了其他堆棧溢出鏈接,例如thisthisthis

我像這樣在現有的 Node.JS 應用程序中導入了 swagger

var swaggerJsdoc = require("swagger-jsdoc"),
var swaggerUi = require("swagger-ui-express");

但錯誤出現在控制台正在跟蹤的 swagger-jsdoc 上

internal/modules/cjs/loader.js:1080 throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath); ^

錯誤 [ERR_REQUIRE_ESM]: Must use import to load ES Module: D:\myTestProject\node_modules\swagger-jsdoc\index.js 不支持 ES 模塊的 require()。 來自 D:\myTestProject\index.js 的 D:\myTestProject\node_modules\swagger-jsdoc\index.js 的 require() 是一個 ES 模塊文件,因為它是一個 .js 文件,其最近的父 package.json 包含“類型”: “模塊”將 package scope 中的 all.js 文件定義為 ES 模塊。 而是將 D:\myTestProject\node_modules\swagger-jsdoc\index.js 重命名為以.cjs 結尾,將需要的代碼更改為使用 import(),或從 D:\myTestProject\node_modules\swagger 中刪除 "type": "module" -jsdoc\package.json。

 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1080:13) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Object.<anonymous> (D:\myTestProject\index.js:3:16) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) { code: 'ERR_REQUIRE_ESM' }

我已經嘗試了以下步驟,但它們沒有用

  1. 在節點啟動腳本中添加了標志“--experimental-modules”
  2. npm install esm --save //這也不起作用

但是現在我終於找到了一個解決方案,它不需要您將您的.js 文件重命名為.mjs,如果您已經運行 Node.Js 版本 12 或更高版本,它也不需要升級您的節點

只需將您的 swagger-jsdoc 降級到使用CommonJS工具構建的 6.1.0,起初我使用的是不是使用CommonJS工具構建的 swagger-jsdoc 7.x 來降級 swagger-jsdoc 使用 npm 的以下命令

npm install swagger-jsdoc@6.0.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM