我正在学习如何使用快递。我的最终目标是使用react / d3和Google Analytics的一些数据构建仪表板。现在我有一个本地项目,包括react-webpack-babel。我想使用google-api-nodejs-client来调用Google Analytics。我试图遵循本教程:http://www.2ality.com/2015/10/google-analytics-api.html但我无法运行我的项目。在我的终端中出现了一堆错误,这是主要的错误:
[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());
如果我的问题不够清楚,请帮助我改进,以便找到自己的方式。
编辑#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",
}
};