使用“导入”与节点库,而不是“要求”?

新手节点问题在这里。

我正在尝试将Google Cloud Node客户端与现有的应用程序(不是我写的)捆绑在一起的代码与汇总。

我已经尝试导入与要求的库,按照其文档,如下所示:

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 ,或者,我怎样才能使requireimport很好地玩?

导入是ES6语法。 您必须使用nodejs的实验性标志,或者使用babel来编译您的js,以便与ES6兼容。

编辑:由于问题是与要求,而不是导入,我更新我的答案。

我不确定你设置的是什么,但是这是因为,我猜测,谷歌云不是写在es6。 所以你必须看看在src中是否有es6版本。 如果有你可以尝试(我怀疑这会起作用)

尝试:

 import * as gcloud from 'google-cloud' 

如果这不起作用 – 尝试像铆钉一样的匀场模块。 你需要webpack来编译这个。 由于您使用的是我不熟悉的rollup.js,因此需要使用es5来编译es6。