带有express和webpack的Google API Node.js客户端

我正在学习如何使用快递。 我的最终目标是通过Google Analytics(分析)中的react / d3和一些数据构build仪表板。 现在我有一个当地的项目,包括react-webpack-babel。 我想使用google-api-nodejs-client来调用Google Analytics。 我正在尝试遵循本教程: http : //www.2ality.com/2015/10/google-analytics-api.html,但无法运行我的项目。 在我的terminal有一堆的错误,这里是主要的一个:

[1] /Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:91 [1] throw new ReferenceError("Unknown option: " + key); [1] ^ [1] [1] ReferenceError: Unknown option: presets [1] at File.normalizeOptions (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:91:15) [1] at new File (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:70:22) [1] at transform (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/index.js:18:14) [1] at Object.transformFileSync (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/node.js:74:10) [1] at compile (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/register/node.js:73:20) [1] at normalLoader (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/register/node.js:119:14) [1] at Object.require.extensions.(anonymous function) [as .js] (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/register/node.js:132:7) [1] at Module.load (module.js:456:32) [1] at tryModuleLoad (module.js:415:12) [1] at Function.Module._load (module.js:407:3) 

所以这里是我的ga.js文件:

 #!/usr/bin/env babel-node import google from 'googleapis'; var fs = require('fs'); import key from '../client_id.json'; const VIEW_ID = 'ga:80220323'; let jwtClient = new google.auth.JWT( key.'mail@domain.com', null, key.'myKey', ['https://www.googleapis.com/auth/analytics.readonly'], null); jwtClient.authorize(function (err, tokens) { if (err) { console.log(err); return; } let analytics = google.analytics('v3'); queryData(analytics); }); function queryData(analytics) { analytics.data.ga.get({ 'auth': jwtClient, 'ids': VIEW_ID, 'metrics': 'ga:uniquePageviews', 'dimensions': 'ga:pagePath', 'start-date': '30daysAgo', 'end-date': 'yesterday', 'sort': '-ga:uniquePageviews', 'max-results': 10, }, function (err, response) { if (err) { console.log(err); return; } console.log(JSON.stringify(response, null, 4)); }); } module.exports = { ??? }; 

这是我的server.babel.js文件:

 import express from 'express'; const app = express(); app.use('/', express.static('public')); app.use('/', express.static('src')); var ga = require('./src/routes/ga'); app.listen(process.env.PORT || 3000); //templating engine app.set('views', './src/views'); app.set('view engine', 'ejs'); app.use('/gadata', ga.queryData()); 

如果我的问题不够清楚,请帮助我改进,这样我就可以find我的路了。

编辑#1:

这里是我的babelrc:

 { "presets": [ "es2015", "stage-0", "react" ], "plugins": [ "transform-runtime", "transform-class-properties" ] } 

编辑#2:

和我的webpack.config:

 module.exports = { entry: './public/client.js', output: { path: './public', filename: 'bundle.js' }, module: { loaders: [ { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader', query: { plugins: ['transform-decorators-legacy'] } } ] }, resolve: { extensions: ['', '.js', '.json'] }, node: { fs: "empty", net: "empty", tls: "empty", } };