1

我对 Webpack 很陌生,只是想弄清楚这一点。

我想使用 Webpack 将 Packery 和 Imagesloaded 包含到我的 WordPress 站点中,但它似乎不起作用。

这是我的文件夹结构:

在此处输入图像描述

下面是我完整的 webpack.config.js

    var path = require('path');
    var ExtractTextPlugin = require('extract-text-webpack-plugin');
    var webpack = require('webpack');
    module.exports = {
        context: path.join(__dirname, 'src'),
        entry: {
            bundle: './js/bundle.js'
        },
        output: {
            path: './dist/js/',
            filename: 'bundle.js'
            // filename: '[name]bundle.js' For use with Multiple Bundles
        },
        module: {
            preLoaders: [
                {
                    test: /\.js$/,
                    exclude: /node_modules/,
                    loader: "jshint-loader"
                }
            ],
            loaders: [
                {
                    test: /\.(scss|sass)$/,
                    loader: ExtractTextPlugin.extract('style-loader', ['css-loader', 'pleeease-loader', 'postcss-loader?sourceMap=inline', 'sass-loader'])
                    // css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5] - CSSModules In Webpack
                },
                {
                    test: /\.js$/,
                    loader: 'babel',
                    exclude: /node_modules$/,
                    query: {
                        presets: ['es2015']
                    }
                },
                {
                    test: /isotope-layout/,
                    loader: 'imports?define=>false&this=>window'
                }
            ]
        },

      sassLoader: {
        includePaths: [path.join(__dirname, 'scss')]
      },

      postcss: [
       require('lost')
     ],

      pleeease: {
            autoprefixer: { browsers: ["last 4 versions", "ios 6"]},
            rem: true,
            minify: true,
            mqpacker: true,
            sourcemaps: false
        },

        resolve: {
            extensions: ['', '.js'],
            modulesDirectories: ["node_modules"],
            alias: {
                jquery: path.join(__dirname, "./node_modules/jquery/dist/jquery.min.js"),
                'imagesLoaded': 'imagesloaded',
                'masonry': 'masonry-layout',
                'isotope': 'isotope-layout',
                'packery': 'packery'
            }
        },

      plugins: [
           new ExtractTextPlugin('../css/style.css', {
             allChunks: true
         }),
         new webpack.ResolverPlugin([
                new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin(".package.json", ["main"])
            ], ["normal", "loader"]),
            new webpack.ProvidePlugin({
                 $: "jquery",
                 jQuery: "jquery",
                 "window.jQuery": "jquery"
             })
         ]
    };

下面是我的 bundle.js 文件内容,位于 src/js/bundle.js:

    require('../../src/scss/style.scss');
    require('jquery');
    var imagesLoaded = require('imagesloaded');
    var Packery = require('packery');

    imagesLoaded( '.grid', function() {
        new Packery( '.grid', {
            itemSelector: '.site__wrapper',
            layoutMode: 'packery'
        });
    });

下面是我的functions.php文件:

    /**
     * Enqueue scripts and styles.
     */
    function business_scripts() {

        // wp_dequeue_script( 'jquery' );
        // wp_deregister_script( 'jquery' );

        wp_enqueue_style( 'style', get_template_directory_uri() . '/dist/css/style.css' );

        // wp_enqueue_script( 'jquery', 'https://cdn.jsdelivr.net/jquery/3.1.1/jquery.min.js', array(), '', false );
        wp_enqueue_script( 'bundle', get_template_directory_uri() . '/dist/js/bundle.js', array('jquery'), '', true );

    }
    add_action( 'wp_enqueue_scripts', 'business_scripts' );

任何帮助将非常感激,

谢谢杰克。

4

0 回答 0