Вопрос для новичков здесь.
Я пытаюсь использовать клиент Google Cloud Node с существующим приложением (не написанным мной), которое связывает его код с rollup.
Я попытался импортировать библиотеку с требованием, согласно ее документации, следующим образом:
import REGL from "regl/dist/regl";
import Camera from "./lib/camera";
...
var gcloud = require('google-cloud');
Но мое приложение жалуется (CLARIFICATION: он только начинает производить эту ошибку, когда я добавляю инструкцию require
, в противном случае импорт работает нормально):
'import' and 'export' may only appear at the top level
Поэтому, возможно, мне нужно использовать import gcloud
вместо require
, но как? Я попытался взглянуть на код в node_modules
и сделать это вместо этого:
import gcloud from "google-cloud/src/index";
Но теперь я получаю кучу других ошибок
Unexpected token
node_modules/google-cloud/node_modules/ent/reversed.json (2:7)
1: {
2: "9": "Tab;",
^
Как я могу использовать import
вместо require
, или же, как я могу сделать require
дружат с import
?
Импорт - это синтаксис ES6. Вы либо должны использовать экспериментальный флаг с nodejs, либо использовать babel для компиляции js для совместимости с ES6.
EDIT: поскольку проблема связана с требованием, а не импортом, я обновляю свой ответ.
Я не уверен, что вы настроили, но это потому, что, я предполагаю, google-облако не написано в es6. Таким образом, вам нужно будет увидеть, есть ли версия es6 в src. Если вы можете попробовать (я сомневаюсь, что это сработает)
Пытаться:
import * as gcloud from 'google-cloud'
если это не сработает - попробуйте модуль обрезки, такой как клепаный. Вам понадобится webpack, чтобы скомпилировать это. Поскольку вы используете rollup.js, с которым я не знаком, вам понадобится компилятор es5 для es6.
imports
работает нормально, это require
которое вызывает проблему. Что именно мне нужно сделать с библиотекой gcloud
чтобы сделать ее совместимой с ES6?
var gcloud = require('google-cloud')
?