首页 > 解决方案 > javascript API导入和导出问题

问题描述

我在为名为“使用 ES6 和 Dropbox 构建费用管理器”的 scrimba 课程导入 Dropbox 依赖项时遇到问题。我想在自己的计算机上练习 Dropbox API,但在将 Dropbox SDK 与我的项目连接时遇到了问题。我已经安装了依赖项,但是我在终端控制台中遇到了这个错误:

SyntaxError: The requested module 'dropbox' does not provide an export named 'Dropbox'

然后,我尝试了旧的“require”方法,得到了这个:

var Dropbox = require('dropbox').Dropbox;
              ^
ReferenceError: require is not defined 

我也尝试过不使用 require 关键字:

import { Dropbox } from 'dropbox';
         ^^^^^^^
SyntaxError: The requested module 'dropbox' does not provide an export named 'Dropbox'
    at ModuleJob._instantiate (internal/modules/esm/module_job.js:92:21)
    at async ModuleJob.run (internal/modules/esm/module_job.js:107:20)
    at async Loader.import (internal/modules/esm/loader.js:167:24)

我的 package.json 看起来像这样:

{
  "name": "z-dropbox-file-organizer-scrimba",
  "version": "1.0.0",
  "description": "scrimba course",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "type": "module",
  "dependencies": {
    "dropbox": "^4.0.30",
    "es6-promise": "^4.2.8",
    "isomorphic-fetch": "^2.2.1"
  }
}

有什么我没有考虑的吗?感谢您的任何帮助!

标签: javascriptapiexportdropbox-api

解决方案


我解决了我的问题!我 "type": "module"从我之前添加的 package.json 文件中删除了(因为我用谷歌搜索了一些东西,我忘记了为什么)。但我想我不太明白 ESM 是什么。我知道'require'是旧方式,'import'是新的ES6方式。但是删除它允许我的脚本在我的终端中运行!


推荐阅读