@micro-app/plugin-webpack-hard-source

[Plugin] adapter webpack plugin of hard-source.

Usage no npm install needed!

<script type="module">
  import microAppPluginWebpackHardSource from 'https://cdn.skypack.dev/@micro-app/plugin-webpack-hard-source';
</script>

README

Micro APP Plugin - Webpack-Hard-Source

[Plugin] adapter webpack plugin of hard-source.

适配集成 webpack 插件 hard-source 配置. 用于 @micro-app/core.

Coverage Status CircleCI NPM Version NPM Download

Install

yarn add @micro-app/plugin-webpack-hard-source

or

npm install -S @micro-app/plugin-webpack-hard-source

Usage

在项目 根目录micro-app.config.js 文件中配置

module.exports = {
    // ...

    plugins: [ // 自定义插件
        [ '@micro-app/plugin-webpack-hard-source', {
            // default config
            {
                // Either an absolute path or relative to webpack's options.context.
                cacheDirectory: 'node_modules/.cache/hard-source/[confighash]',
                // Either a string of object hash function given a webpack config.
                configHash: function(webpackConfig) {
                    // node-object-hash on npm can be used to build this.
                    return require('node-object-hash')({sort: false}).hash(webpackConfig);
                },
                // Either false, a string, an object, or a project hashing function.
                environmentHash: {
                    root: process.cwd(),
                    directories: [],
                    files: ['package-lock.json', 'yarn.lock'],
                },
                // An object.
                info: {
                    // 'none' or 'test'.
                    mode: 'none',
                    // 'debug', 'log', 'info', 'warn', or 'error'.
                    level: 'debug',
                },
                // Clean up large, old caches automatically.
                cachePrune: {
                    // Caches younger than `maxAge` are not considered for deletion. They must
                    // be at least this (default: 2 days) old in milliseconds.
                    maxAge: 2 * 24 * 60 * 60 * 1000,
                    // All caches together must be larger than `sizeThreshold` before any
                    // caches will be deleted. Together they must be at least this
                    // (default: 50 MB) big in bytes.
                    sizeThreshold: 50 * 1024 * 1024
                },

                // new options
                filterError: [
                    /ReplaceDependency/i,
                ],
                excludeModule: false,
            }
        } ],
    ],
};