WebPack v PhpStorm

03.01.2022 Mac #webpack #phpstorm

Návod na zprovoznění WebPacku v PhpStormu.


V první řadě musí být nainstalováno NODE.js.

brew install node

Vytvořte soubor package.json. V něm jsou uvedeny požadované závislosti, např.:

{
  "name": "project.cz",
  "version": "1.0.0.",
  "scripts": {
    "build": "webpack"
  },
  "devDependencies": {
    "css-loader": "^6.5.1",
    "mini-css-extract-plugin": "^2.4.5",
    "ts-loader": "^9.2.6",
    "webpack": "^5.65.0",
    "webpack-cli": "^4.9.1"
  },
  "dependencies": {
    "uglify-js": "^3.14.5"
  }
}

Pokud WebPack není nainstalovaný provedeme příkaz:

npm install --save-dev webpack

Vytvoříme konfigurační soubor webpack.config.js, jehož obsahem může být např.:

const path = require('path');
const webpack = require('webpack');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
    //mode: 'development',
    mode: 'production',
    entry: [
        './templates/tpl-default/js/apps.js',
        './assets/vendor/jquery/jquery-migrate-1.4.1.min.js',
        './assets/js/form.js',
        './assets/js/script-ajax-uni.js',
        './templates/tpl-default/js/jquery.pwstabs.min.js',
        './assets/vendor/fancybox/jquery.fancybox.min.js',
        './assets/vendor/flickity/flickity.pkgd.min.js',

        './templates/tpl-default/css/jquery.pwstabs.min.css',
        './templates/tpl-default/css/icomoon.css',
        './assets/vendor/fancybox/jquery.fancybox.min.css',
        './assets/vendor/flickity/flickity.css'
        ],
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, './templates/tpl-default/js/'),
    },
    resolve: {
        alias: {
            jquery: path.resolve(__dirname, './assets/vendor/jquery/jquery-3.2.1.min.js'),
        },
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: "jquery"
        }),
        new MiniCssExtractPlugin({
            filename: "bundle.css"
        }),
    ],
    module: {
        rules: [
            {
                test: /.css$/,
                use: [
                    {
                        loader: MiniCssExtractPlugin.loader
                    },
                    "css-loader",
                ]
            }
        ]
    }
};

Spuštění kompilace provedeme pomocí příkazu:

npm run build