![](/img/trans.png)
[英]Uncaught SyntaxError: The requested module '/@modules/vue.js' does not provide an export named 'default'
[英]SyntaxError: The requested module 'sqlite' does not provide an export named 'default'
我在尝试导入 sqlite 时遇到问题,我添加了以下行:
import sqlite from 'sqlite';
我收到以下错误
file:///D:/WebPro/WebProg/cwCode/dbInteract.js:2
import sqlite from 'sqlite';
^^^^^^
SyntaxError: The requested module 'sqlite' does not provide an export named 'default'
at ModuleJob._instantiate (node:internal/modules/esm/module_job:105:21)
at async ModuleJob.run (node:internal/modules/esm/module_job:151:5)
at async Loader.import (node:internal/modules/esm/loader:166:24)
at async Object.loadESM (node:internal/process/esm_loader:68:5)
npm ERR! code 1
npm ERR! path D:\WebPro\WebProg\cwCode
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node svr.js
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Rory\AppData\Local\npm-cache\_logs\2021-05-04T13_37_27_066Z-debug.log
PS D:\WebPro\WebProg\cwCode>
在将 package.json 中的类型更改为“模块”之前,我没有这个问题
如果我然后改变是
import sqlite from 'sqlite3';
我得到了这个错误
file:///D:/WebPro/WebProg/cwCode/svr.js:4
const express = require('express');
^
ReferenceError: require is not defined
at file:///D:/WebPro/WebProg/cwCode/svr.js:4:17
at ModuleJob.run (node:internal/modules/esm/module_job:154:23)
at async Loader.import (node:internal/modules/esm/loader:166:24)
at async Object.loadESM (node:internal/process/esm_loader:68:5)
npm ERR! code 1
npm ERR! path D:\WebPro\WebProg\cwCode
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node svr.js
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Rory\AppData\Local\npm-cache\_logs\2021-05-04T13_44_05_322Z-debug.log
PS D:\WebPro\WebProg\cwCode>
使用 ESM 模块,有两种方法可以导出功能:作为默认导出或命名导出。 导入这些功能的方式首先取决于它们的实际导出方式。
import defaultExport from 'module1' // Import default export
import { namedExport1, namedExport2 } from 'module2' // Import named exports
请注意,一个模块实际上可能同时具有默认导出和命名导出,或者只是其中之一。
即使它们是同一个数据库的库, sqlite
和sqlite3
包显然只是以不同的方式导出它们的 api - 而sqlite
更具体地说似乎没有默认导出。
此外,当您将package.json
type
键设置为module
时,您指示节点使用 ESM 模块系统加载您的程序。 该系统没有定义require()
function - 这是由另一个名为 CommonJS 的 node.js 主流模块系统定义的。 你应该坚持这里的import
语法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.