Javascript 网页包:定义';查询';多台装载机,配备react hot和babel
更新:多亏了@bebraw,解决方案是使用新的巴别塔预设:Javascript 网页包:定义';查询';多台装载机,配备react hot和babel,javascript,webpack,babeljs,Javascript,Webpack,Babeljs,更新:多亏了@bebraw,解决方案是使用新的巴别塔预设: 请注意,react hot已经被弃用,现在有一个相当于babel的插件。npmjs.com/package/babel-preset-react-hmre为您进行设置 具体错误是: 无法在加载器列表中定义“查询”和多个加载器 link是指遇到相同错误但有不同解决方案的人 理想情况下,我可以运行这样的程序: module: { loaders: [ { test: /\.js$/,
请注意,react hot已经被弃用,现在有一个相当于babel的插件。npmjs.com/package/babel-preset-react-hmre为您进行设置 具体错误是:
无法在加载器列表中定义“查询”和多个加载器
link是指遇到相同错误但有不同解决方案的人
理想情况下,我可以运行这样的程序:
module:
{
loaders: [
{
test: /\.js$/,
loaders: ['react-hot', 'babel'],
exclude: /node_modules/,
include: path.join(__dirname, 'app'),
query: {
stage: 0,
plugins: ['./babelRelayPlugin']
}
},
var babelRelayPlugin = require('babel-relay-plugin');
var introspectionQuery = require('graphql/utilities').introspectionQuery;
var request = require('sync-request');
var graphqlHubUrl = 'http://www.GraphQLHub.com/graphql';
var response = request('GET', graphqlHubUrl, {
qs: {
query: introspectionQuery
}
});
var schema = JSON.parse(response.body.toString('utf-8'));
module.exports = babelRelayPlugin(schema.data, {
abortOnError: true,
});
{
test: /\.js$/,
loaders: ['react-hot'],
exclude: /node_modules/,
include: path.join(__dirname, 'app')
},
{
test: /\.js$/,
loaders: [babel'],
exclude: /node_modules/,
include: path.join(__dirname, 'app'),
query: {
stage: 0,
plugins: ['./babelRelayPlugin']
}
}
我希望通过Babel运行的东西通过babelRelayPlugin
,这是一个js
文件,位于/
我的babelRelayPlugin.js
文件如下所示:
module:
{
loaders: [
{
test: /\.js$/,
loaders: ['react-hot', 'babel'],
exclude: /node_modules/,
include: path.join(__dirname, 'app'),
query: {
stage: 0,
plugins: ['./babelRelayPlugin']
}
},
var babelRelayPlugin = require('babel-relay-plugin');
var introspectionQuery = require('graphql/utilities').introspectionQuery;
var request = require('sync-request');
var graphqlHubUrl = 'http://www.GraphQLHub.com/graphql';
var response = request('GET', graphqlHubUrl, {
qs: {
query: introspectionQuery
}
});
var schema = JSON.parse(response.body.toString('utf-8'));
module.exports = babelRelayPlugin(schema.data, {
abortOnError: true,
});
{
test: /\.js$/,
loaders: ['react-hot'],
exclude: /node_modules/,
include: path.join(__dirname, 'app')
},
{
test: /\.js$/,
loaders: [babel'],
exclude: /node_modules/,
include: path.join(__dirname, 'app'),
query: {
stage: 0,
plugins: ['./babelRelayPlugin']
}
}
问题是,您不能使用多个加载程序并进行
查询
。我认为解决方案存在于使用?
内联的“查询参数”中,但我已经尝试了许多可能的解决方案,但无法使其工作 请注意,react hot已经被弃用,现在有了一个等价的巴别塔插件。npmjs.com/package/babel-preset-react-hmre为您进行设置
或者,您可以按如下方式拆分配置:
module:
{
loaders: [
{
test: /\.js$/,
loaders: ['react-hot', 'babel'],
exclude: /node_modules/,
include: path.join(__dirname, 'app'),
query: {
stage: 0,
plugins: ['./babelRelayPlugin']
}
},
var babelRelayPlugin = require('babel-relay-plugin');
var introspectionQuery = require('graphql/utilities').introspectionQuery;
var request = require('sync-request');
var graphqlHubUrl = 'http://www.GraphQLHub.com/graphql';
var response = request('GET', graphqlHubUrl, {
qs: {
query: introspectionQuery
}
});
var schema = JSON.parse(response.body.toString('utf-8'));
module.exports = babelRelayPlugin(schema.data, {
abortOnError: true,
});
{
test: /\.js$/,
loaders: ['react-hot'],
exclude: /node_modules/,
include: path.join(__dirname, 'app')
},
{
test: /\.js$/,
loaders: [babel'],
exclude: /node_modules/,
include: path.join(__dirname, 'app'),
query: {
stage: 0,
plugins: ['./babelRelayPlugin']
}
}
请注意,装载机的评估从右到左,从下到上。因此订购。请注意,react hot已被弃用,现在有一个等效的babel插件。为你做设置。啊!谢谢@bebraw。我退出比赛太久了,没关系。也许我们可以解决这个问题。答案应该是将其拆分。顺便说一句,我将在顶部更新它并引用您的评论。我将我的评论移动到了一个答案。谢谢+1: