不能在带有@pusher/push-notifications-web nodejs 的模块外使用 import 语句 - beams
Cannot use import statement outside a module with @pusher/push-notifications-web nodejs - beams
我正在尝试使用 nodejs 和 express 学习本教程:https://pusher.com/docs/beams/reference/web/#npm-yarn
首先我做了:在添加代码之前 npm install @pusher/push-notifications-web。
但是当我在 index.js 文件中添加这段代码时:
import * as PusherPushNotifications from "@pusher/push-notifications-web";
const beamsClient = new PusherPushNotifications.Client({
instanceId: "<YOUR_INSTANCE_ID_HERE>",
});
beamsClient.start().then(() => {
// Build something beatiful
});
我收到此错误:
语法错误:无法在模块外使用导入语句
如果代码必须在前端或后端,我从教程中也不是很清楚。我都试过了,但得到了相同的结果。
我该如何解决这个问题?
错误是由于您试图在常规 CommonJS 文件中使用 ES 模块特定功能(Node.js 中的默认行为)。但是,您正在查看的是用于 Pusher 的 Web SDK,它不会帮助您实现目标。
您需要 Node.js 的服务器 SDK - https://pusher.com/docs/beams/reference/server-sdk-node/。
确认您安装了最新版本的 Node.js 并且您有两种修复方法
- 在 package.json 中设置值为“模块”的“类型”字段。这将确保所有 .js 和 .mjs 文件都被解释为 ES 模块。
// package.json
{
"type": "module"
}
- 使用
.mjs
作为文件扩展名,而不是 .js
。
我正在尝试使用 nodejs 和 express 学习本教程:https://pusher.com/docs/beams/reference/web/#npm-yarn
首先我做了:在添加代码之前 npm install @pusher/push-notifications-web。
但是当我在 index.js 文件中添加这段代码时:
import * as PusherPushNotifications from "@pusher/push-notifications-web";
const beamsClient = new PusherPushNotifications.Client({
instanceId: "<YOUR_INSTANCE_ID_HERE>",
});
beamsClient.start().then(() => {
// Build something beatiful
});
我收到此错误: 语法错误:无法在模块外使用导入语句
如果代码必须在前端或后端,我从教程中也不是很清楚。我都试过了,但得到了相同的结果。
我该如何解决这个问题?
错误是由于您试图在常规 CommonJS 文件中使用 ES 模块特定功能(Node.js 中的默认行为)。但是,您正在查看的是用于 Pusher 的 Web SDK,它不会帮助您实现目标。
您需要 Node.js 的服务器 SDK - https://pusher.com/docs/beams/reference/server-sdk-node/。
确认您安装了最新版本的 Node.js 并且您有两种修复方法
- 在 package.json 中设置值为“模块”的“类型”字段。这将确保所有 .js 和 .mjs 文件都被解释为 ES 模块。
// package.json
{
"type": "module"
}
- 使用
.mjs
作为文件扩展名,而不是.js
。