A webpack post compile plugin
MIT License
A webpack post compile plugin. It is used to include post compile modules in node_modules.
npm i webpack-post-compile-plugin --save-dev
const PostCompilePlugin = require('webpack-post-compile-plugin')
const path = require('path')
module.exports = {
// ...
module: {
rules: [
// ...
{
test: /\.js$/,
loader: 'babel-loader',
include: [path.resolve(__dirname, './')]
// eg: {"compileDependencies": ["cube-ui"]} // package.json
// the current rule's loader will process node_modules/cube-ui/**/*.js too
}
// ...
]
},
plugins: [
new PostCompilePlugin()
]
}
And if you can control all the packages which you want to post compile, you can just add postCompile: true
to the packages package.json
:
{
"name": "your-one-pkg",
// ...
"postCompile": true
// ...
}
Or you can add compileDependencies
to your application package.json
:
{
"name": "your-application",
// ...
"compileDependencies": ["xx-pkg"]
}
After 1.0.0+, you can alse use postCompile
like this:
{
"name": "your-one-pkg",
// ...
"postCompile": "src/*.js"
// ...
}
{
"name": "your-one-pkg",
// ...
"postCompile": [
"*.js"
]
// ...
}
1.0.0+ postCompile
uses micromatch to match the post compile files.
new PostCompilePlugin({
dependenciesKey: 'myCompileDependencies',
compileDependencies: ['a', 'b'],
compilePaths: ['node_module/@test']
})
dependenciesKey {String}
default 'compileDependencies'
, dependencies key in package.json
, it is used to find and include post compile node modules.
compileDependencies {Array}
default undefined
, application init post compile node modules, if it is undefined
then the plugin will get dependenciesKey
value or dependencies
keys value in package.json
as the init application's post complie node modules.
sourceDir {String}
0.5.1+ default src
, application source directory, if your application's source directory is lib
you should set this config to lib
.
compilePaths {Array}
1.1.0+ default undefined
, a dependencies matching any of these conditions will be treated as post compile modules.