正在尝试导入此文件:
subscription onNewNotification {
notification {
id
content
seen
}
}
运行 babel-node 编译整个事情时出现此错误:SyntaxError: .../graphql/NotificationSubscription.graphql: Unexpected token, expected ;
这是我的 webpack 加载器的样子:
module: {
loaders: [
{
test: /.js?$/,
include: [
path.join(__dirname, 'client'),
path.join(__dirname, 'server/shared'),
],
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['react-hmre'],
},
},
{
test: /.json?$/,
loader: 'json-loader',
},
{
test: /.scss$/,
loaders: ['style-loader', 'css-loader', 'sass-loader'],
},
{ test: /.css$/, loader: 'style-loader!css-loader' },
{ test: /.svg(?v=d+.d+.d+)?$/, loader: 'file-loader?mimetype=image/svg+xml' },
{
test: /.(graphql|gql)$/,
exclude: /node_modules/,
loader: 'graphql-tag/loader',
},
],
},
不知道为什么会发生这种情况,我正在关注阿波罗文档,但我在谷歌上没有看到任何关于这个的内容:http://dev.apollodata.com/react/webpack.html
,我也遇到了同样的问题。在与阿波罗松弛频道上的家伙交谈后,我们开始调试并发现问题所在。我们发现问题出在"babel-register"上,它以某种方式试图编译.graphql
文件,即使有忽略的规则。因此,您可以走两条路:
- 更容易做到:无需创建 graphql 文件,您只需创建一个 js 文件来保存查询,并使用包上的 gql 函数创建查询并将其导出为变量,而不是创建
react-apollo
查询。
- 更容易做到:无需创建 graphql 文件,您只需创建一个 js 文件来保存查询,并使用包上的 gql 函数创建查询并将其导出为变量,而不是创建
- 更精致:如果你使用 webpack,你可以创建一个配置,将所有服务器代码编译在一个捆绑包中,并使用节点(没有 babel-node 或 babel-register(运行捆绑包,就像在 GitHunt-React 示例 (https://github.com/apollographql/GitHunt-React( 中一样。它不像第一个那么简单,但它更优雅。
我已经解决了内联导入图形ql-ast的问题