@GrimJack

Можно ли как-то вмешаться в ссобрку вебпаком добавив laravel mix .version?

Есть такой webmack.config.js
webpack
const NAMESPACE_DESKTOP = 'assets/desktop/';
const NODE_ENV = process.env.NODE_ENV || 'development';

const webpack = require('webpack');

const WebpackNotifierPlugin = require('webpack-notifier');
const ExtractTextPlugin = require("extract-text-webpack-plugin");

module.exports = {
    context: __dirname + '/resources/assets',
    entry: {
        desktop: './desktop',
        login: './login'
    },
    output: {
        path: __dirname + '/public/assets',
        filename: "[name].js",
        library: '[name]'
    },
    devtool: 'cheap-inline-module-source-map',
    module: {
        loaders: [
            {
                test: /\.js$/,
                exclude: /(node_modules)/,
                loaders: ['ng-annotate', 'babel?presets[]=es2015']
            },
            {
                test: /\.css$/,
                loader: ExtractTextPlugin.extract('style', 'css!resolve-url')
            },
            {
                test: /\.less$/,
                loader: ExtractTextPlugin.extract('style', 'css!resolve-url!less')
            },
            {
                test: /\.scss$/,
                loader: ExtractTextPlugin.extract('style', 'css!resolve-url!sass?sourceMap')
            },
            {
                test: /\.(jpe?g|png|gif|otf|eot|svg|ttf|woff|html)/,
                loader: 'file?name=[path][name].[ext]'
            }
            //{
            //    test: /\.woff($|\?)|\.woff2($|\?)|\.ttf($|\?)|\.eot($|\?)|\.svg($|\?)/,
            //    loader: 'url-loader'
            //}
        ],
        noParse: ['node_modules']
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: "jquery",
            "window.jQuery": "jquery",
            _: "underscore",
            "window._": "underscore"
        }),
        new webpack.NoErrorsPlugin(),
        new WebpackNotifierPlugin({title: 'Webpack'}),
        new webpack.DefinePlugin({
            NAMESPACE_DESKTOP: JSON.stringify(NAMESPACE_DESKTOP),
            NODE_ENV: JSON.stringify(NODE_ENV)
        }),
        new webpack.HotModuleReplacementPlugin(),
        new ExtractTextPlugin('[name].css', {allChunks: true})
    ],
    resolve: {
        extensions: ['', '.js', '.html', '.less', '.scss', '.css']
    },
    watch: NODE_ENV == 'development',
    watchOptions: {
        aggregateTimeout: 100
    },
    devServer: {
        host: 'localhost',
        port: '8080',
        contentBase: __dirname + '/public',
        hot: false,
        inline: false,
        publicPath: '/assets',
        headers: {
            'Access-Control-Allow-Origin': '*'
        }
    }
};

if (NODE_ENV != 'development') {
    module.exports.plugins.push(
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false,
                drop_console: false,
                unsafe: true
            }
        })
    );

}


Нужно чтобы при npm run prod(NODE_ENV=production webpack ) конечные css и js файлы проходили через mix.****.version();
Но есть проблема. До этого никогда не работал с вебпаком и вообще js был на уровне jquery, потому понять что там происходит для меня сложно, а времени сейчас нет на это.

Я так понимаю, что вначале кода надо добавить let mix = require('laravel-mix');
А вот как и что далее обернуть, чтобы происходило то самое mix.****.version(); я не понимаю. Наставьте пожалуйста на путь верный.
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы