You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cloudinary模块出现无法在模块外使用import语句的SyntaxError报错原因

问题描述

尝试调用cloudinary模块实现图片尺寸调整功能,所用代码如下:

import cloudinary from 'cloudinary';
var cl = new cloudinary.Cloudinary({ cloud_name: "username", secure: true });
new CloudinaryImage("pingu.jpg").resize(scale().width(70).height(53));

运行后得到如下报错信息:

(node:29424) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
c:\Users\...\perspective\cloud.js:1
import cloudinary from 'cloudinary';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (node:internal/modules/cjs/loader:1018:16)
    at Module._compile (node:internal/modules/cjs/loader:1066:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1131:10)
    at Module.load (node:internal/modules/cjs/loader:967:32)
    at Function.Module._load (node:internal/modules/cjs/loader:807:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47

[Done] exited with code=1 in 0.183 seconds

咨询该特定报错的具体触发原因。

报错原因

这个报错和cloudinary的功能逻辑无关,是Node.js的模块解析规则直接触发的:

  • Node.js默认把后缀为.js的文件当作CommonJS模块处理,CommonJS规范只支持require()方式导入依赖,不识别ES Module标准的import关键字
  • 运行的cloud.js没有做任何ES模块声明,Node.js按CommonJS规则解析到第一行的import语句时,直接抛出语法错误,提示不能在非ES模块环境下使用import语句
  • 报错开头的警告已经明确给出判定依据:要让Node.js识别ES模块语法,要么在项目的package.json里添加"type": "module"配置,要么把文件后缀改成.mjs,两种方式都能显式告知Node.js按ES Module规范解析对应文件。

额外提示:就算解决了模块规范的问题,当前代码还有逻辑缺失:CloudinaryImage、scale这两个方法没有从cloudinary包中导入,后续运行还会触发变量未定义的错误。

内容的提问来源于stack exchange,提问作者Cinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 12:27:17