如何修復“未捕獲的語法錯誤:無法在模塊外使用import 語句”


導入某些內容時,你是否收到“無法在模塊外使用導入語句”錯誤?

這是完整的錯誤消息,“未捕獲的語法錯誤:無法在模塊外使用import 語句”。

你收到“未捕獲的ReferenceError:ms 未定義”的主要原因是模塊是作用域的。

由於你使用本機模型加載庫,因此無法在腳本標記中訪問“ms”,因為它不在全局範圍內。

換句話說,你正在嘗試獨立運行該文件。

根據官方Node.js 文檔,導入語句只允許在ES 模塊中使用。

因此,要修復“Uncaught SyntaxError: Cannot use import statement outside a module”錯誤消息,你需要讓Node.js 將你的文件視為ES 模塊。

錯誤消息可能發生在WordPress、TypeScript、JavaScript 等。

在嘗試修復它之前,你需要確保你擁有最新版本的Node.js。

之後,嘗試使用以下方法:

方法一:在腳本標籤中添加type=”module”

在腳本標籤中添加type=”module”。

這將表明它是一個JavaScript 模塊。

之前(錯誤):

之後(正確):

如果你因此收到CORS 錯誤,則需要在標題中添加“Access-Control-Allow-Origin: *”。

方法二:在package.json 文件中添加type=”module”

在最近的父package.json 文件中添加“type”:“module”。

這將確保.js 和.mjs 文件被表示為ES 模塊。

但是,如果你使用.ts 文件,則需要使用“nodemon”而不是“node”。

{ // … “type”: “module”, // … }

方法3:將“import”替換為“require”

嘗試替換“import { parse} from ‘node-html-parser’;” 使用“const parse = require(‘node-html-parser’)”或“const parse = require(‘node-html-parser’);”。

// import { parse } from ‘node-html-parser’; const parse = require(‘node-html-parser’);

方法四:引用typeORM

你需要使用“dist”和“js”而不是“src”和“ts”。

之前(錯誤):

“實體”: [
“src/db/entity/**/*.ts”,
],

之後(正確):

“實體”: [
“dist/db/entity/**/*.js”,
],

方法5:將“esnext”替換為“commonjs”

如果你在TypeScript 上遇到錯誤,你需要執行以下操作:

代替:

“目標”:“esnext”,“模塊”:“esnext”,

利用:

“目標”:“esnext”,“模塊”:“commonjs”,

結論

“Uncaught SyntaxError: Cannot use import statement outside a module”錯誤是開發人員面臨的最常見錯誤之一。

StackOverflow 上有超過170 萬的瀏覽量。

在大多數情況下,錯誤消息的發生是因為你沒有在腳本標記中包含type=”module”。

包含type=module 將表示它是一個JavaScript 模塊。

進一步閱讀

如何修復“正在下載英語(美國)更新等待網絡連接”

如何修復Discord 上的“主進程中發生JavaScript 錯誤”

2022 年最佳幣安推薦ID 代碼

資訊來源:由0x資訊編譯自FOLLOWCHAIN。版權歸作者Lim How Wei所有,未經許可,不得轉載

Total
0
Shares
Related Posts