
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@benjie/persistgraphql-webpack-plugin
Advanced tools
Webpack Plugin for working with Persisted GraphQL Queries with Hot Code Replacement support.
npm install --save-dev persistgraphql-webpack-plugin
Sample Webpack config:
var PersistGraphQLPlugin = require('persistgraphql-webpack-plugin');
module.exports = {
module: {
rules: [
{
test: /\.jsx?$/,
// ...
use: [
'babel-loader',
// Should come AFTER babel-loader
'persistgraphql-webpack-plugin/js-loader'
]
},
{
test: /\.(graphql|gql)$/,
use: [
'graphql-tag/loader',
// Should come AFTER graphql-tag/loader
'persistgraphql-webpack-plugin/graphql-loader'
]
},
]
}
plugins: [
new PersistGraphQLPlugin({filename: 'persisted_queries.json',
moduleName: path.resolve('node_modules/persisted_queries.json')})
]
};
In the source code of front-end persisted GraphQL queries will be injected
as a virtual module persisted_queries.json. This module will be updated
if queries added or changed. Also asset with name persisted_queries.json will be generated
during compilation and written to output directory.
var queryMap = require('persisted_queries.json');
console.log(queryMap);
var PersistGraphQLPlugin = require('persistgraphql-webpack-plugin');
const moduleName = path.resolve('node_modules/persisted_queries.json');
const frontendPersistPlugin = new PersistGraphQLPlugin({ moduleName });
const backendPersistPlugin =
new PersistGraphQLPlugin({ provider: clientPersistPlugin, moduleName });
var frontendWebpackConfig = {
module: {
rules: [
{
test: /\.jsx?$/,
// ...
use: [
'babel-loader',
// Should come AFTER babel
'persistgraphql-webpack-plugin/js-loader'
]
},
{
test: /\.(graphql|gql)$/,
use: [
'graphql-tag/loader',
// Should come AFTER graphql-tag/loader
'persistgraphql-webpack-plugin/graphql-loader'
]
},
]
}
plugins: [
frontendPersistPlugin
]
};
var backendWebpackConfig = {
// ...
plugins: [
backendPersistPlugin
]
}
Both in the source code of front-end and back-end persisted GraphQL queries will be injected
as a virtual module node_modules/persisted_queries.json. This module will be updated if queries added or changed.
var queryMap = require('persisted_queries.json');
console.log(queryMap);
Sample Webpack config:
var PersistGraphQLPlugin = require('persistgraphql-webpack-plugin');
module.exports = {
module: {
loaders: [
{
test: /\.jsx?$/,
loaders: [
'babel?' + JSON.stringify(
{
cacheDirectory: __DEV__,
presets: ['es2015', 'es2017', 'react'],
plugins: ['transform-runtime', 'transform-decorators-legacy', 'transform-class-properties']
}
),
// Should come AFTER babel-loader
'persistgraphql-webpack-plugin/js-loader'
],
exclude: /(node_modules|bower_components)/
},
{
test: /\.(graphql|gql)$/,
exclude: /node_modules/,
loaders: [
'graphql-tag/loader',
// Should come AFTER graphql-tag/loader
'persistgraphql-webpack-plugin/graphql-loader'
]
},
]
}
plugins: [
new PersistGraphQLPlugin({filename: 'persisted_queries.json',
moduleName: path.resolve('node_modules/persisted_queries.json')})
]
};
In the source code of front-end persisted GraphQL queries will be injected
as a virtual module persisted_queries.json. This module will be updated
if queries added or changed. Also asset with name persisted_queries.json will be generated
during compilation and written to output directory.
var queryMap = require('persisted_queries.json');
console.log(queryMap);
var PersistGraphQLPlugin = require('persistgraphql-webpack-plugin');
const moduleName = path.resolve('node_modules/persisted_queries.json');
const frontendPersistPlugin = new PersistGraphQLPlugin({ moduleName });
const backendPersistPlugin =
new PersistGraphQLPlugin({ provider: clientPersistPlugin, moduleName });
var frontendWebpackConfig = {
module: {
loaders: [
{
test: /\.jsx?$/,
loaders: [
'babel?' + JSON.stringify(
{
cacheDirectory: __DEV__,
presets: ['es2015', 'es2017', 'react'],
plugins: ['transform-runtime', 'transform-decorators-legacy', 'transform-class-properties']
}
),
// Should come AFTER babel-loader
'persistgraphql-webpack-plugin/js-loader'
],
exclude: /(node_modules|bower_components)/
},
{
test: /\.(graphql|gql)$/,
exclude: /node_modules/,
loaders: [
'graphql-tag/loader',
// Should come AFTER graphql-tag/loader
'persistgraphql-webpack-plugin/graphql-loader'
]
},
]
}
plugins: [
frontendPersistPlugin
]
};
var backendWebpackConfig = {
// ...
plugins: [
backendPersistPlugin
]
}
Both in the source code of front-end and back-end persisted GraphQL queries will be injected
as a virtual module node_modules/persisted_queries.json. This module will be updated if queries added or changed.
var queryMap = require('persisted_queries.json');
console.log(queryMap);
new PersistGraphQLPlugin(options: object)
| Name | Type | Description |
|---|---|---|
moduleName | {String} | Name of virtual wepback module with persisted GraphQL queries, this option is required |
filename | {String} | Name of the ouput file with persisted GraphQL queries |
addTypename | {Boolean} | Apply a query transformation to the query documents, adding the __typename field at every level of the query. You must pass this option if your client code uses this query transformation. |
provider | {Object} | Instance of plugin running on another webpack instance which will provide persisted GraphQL queries |
Copyright © 2017 SysGears INC. This source code is licensed under the MIT license.
FAQs
PersistGraphQL Webpack Plugin
We found that @benjie/persistgraphql-webpack-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.