導入某些內容時,你是否收到“無法在模塊外使用導入語句”錯誤?
這是完整的錯誤消息,“未捕獲的語法錯誤:無法在模塊外使用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所有,未經許可,不得轉載