webpack-dynamic-public-path-2

0.0.4 • Public • Published

Dynamic Public Path Plugin

Replace publicPath inside a chunk, or chunks, to a variable.

NPM version dependencies Status contributions welcome

NPM

Install

npm install --save-dev webpack-dynamic-public-path

Usage

⚠️ This plugin is compatible only with webpack 4.

webpack.config.js

const WebpackDynamicPublicPathPlugin = require("webpack-dynamic-public-path");
 
module.exports = {
    output: {
        publicPath: "publicPathPlaceholder",
    },
    plugins: [
        new WebpackDynamicPublicPathPlugin({
            externalPublicPath: "window.externalPublicPath"
        }),
    ]
}

bundle.js

// before
__webpack_require__.p = "publicPathPlaceholder";
 
// after
__webpack_require__.p = window.externalPublicPath;

Options

new WebpackDynamicPublicPathPlugin(options: object)
Name Type Description
externalPublicPath {String} JavaScript code, here you can define some variable or condition.
chunkNames {Array} Chunk names in which publicPath will be replaced.

chunkNames

In case if you have several entries you should define plugin instance for each of them. Check example.

webpack.config.js

const WebpackDynamicPublicPathPlugin = require("webpack-dynamic-public-path");
 
module.exports = {
    entry: {
        'index': path.resolve(__dirname, 'src', 'index.js'),
        'second-chunk': path.resolve(__dirname, 'src', 'second-chunk.js')
    },
    output: {
        filename: '[name].bundle.js',
        publicPath: "publicPathPlaceholder"
    },
    plugins: [
        new WebpackDynamicPublicPathPlugin({
            externalPublicPath: "window.externalPublicPathForMainChunk",
            chunkNames: ['index']
        }),
        new WebpackDynamicPublicPathPlugin({
            externalPublicPath: '"./"',
            chunkNames: ['second-chunk']
        }),
    ]
}

index.bundle.js

__webpack_require__.p = window.externalPublicPathForMainChunk;

second-chunk.bundle.js

__webpack_require__.p = "./";

/webpack-dynamic-public-path-2/

    Package Sidebar

    Install

    npm i webpack-dynamic-public-path-2

    Weekly Downloads

    1

    Version

    0.0.4

    License

    MIT

    Unpacked Size

    197 kB

    Total Files

    7

    Last publish

    Collaborators

    • ziaochina