You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# webpack.config.jsconstInjectPlugin=require('webpack-inject-plugin').default;module.exports={// Other stuff in your webpack configplugins: [newInjectPlugin(function(){return"console.log('Hello World');"});]};
This webpack plugin accepts a single argument, a function to which returns the code to inject into the bundle.
The function is called using the same context as the loader, so everything here applies.
You can either return the raw content to load, or a Promise which resolves to the content, if you wish to be async.
options
You can also pass in more options:
importInjectPlugin,{ENTRY_ORDER}from'webpack-inject-plugin';newInjectPlugin(loader,{entryName: 'entry name',// Limit the injected code to only the entry w/ this nameentryOrder: ENTRY_ORDER.First// Make the injected code be the first entry pointENTRY_ORDER.Last// Make the injected code be the last entry pointENTRY_ORDER.NotLast// Make the injected code be second to last. (The last entry module is the API of the bundle. Useful when you don't want to override that.) This is the default.});
options.entryName
string | function
A filter for which entries to inject code into.
If a string, only an entry with the same name will be used.
If a function, it will be called with each entry name -- and only inject code for each truthy response
ex.
newInjectPlugin(loader,{// This will inject code into every entry that's not named `foo`entryName: key=>key!=='foo'});
options.loaderID
string
An optional uniquie ID for the injected loader. If omitted, one will automatically be generated for you.
Additional Use Cases
Though this could be used as a standalone plugin, you could also use it to create other webpack plugins, such as injecting code into the build based on a config file.
Example:
importInjectPluginfrom'webpack-inject-plugin';functioncustomLoader(options){return()=>{return"console.log('My custom code generated from `options`');";};}exportdefaultclassMyPlugin{constructor(options){this.options=options;}apply(compiler){newInjectPlugin(customLoader(this.options)).apply(compiler);}}
Contributors
Thanks goes to these wonderful people (emoji key):