эффективно использовать веб-пакет Encore - PullRequest
0 голосов
/ 14 декабря 2018

Желая улучшить время компиляции ресурсов в моем проекте Symfony с помощью веб-пакета Encore, я нахожусь в компиляции, которая никогда не заканчивается, что заставляет меня думать, что что-то ускользает от меня.Мне трудно понять этот инструмент.Я хотел бы понять, как я могу извлечь из этого выгоду в проекте Symfony.

Вот часть документа, которую я хотел применить: WebPackEncore

здесьКонфиг, который я хотел улучшить:

var Encore = require('@symfony/webpack-encore');
var CommonsChunkPlugin = 
    require('webpack/lib/optimize/CommonsChunkPlugin');

Encore
    .setOutputPath('web/build/')
    .setPublicPath('/build')
    .cleanupOutputBeforeBuild()
    .addEntry('app', './app/Resources/assets/default/js/main.js')
    .addEntry('home', [
        './app/Resources/assets/default/js/home.js',
        './app/Resources/assets/default/scss/home.scss',
    ])
    .addEntry('page1', [
        './app/Resources/assets/default/js/page1.js',
        './app/Resources/assets/default/scss/page1.scss',
    ])
    .addEntry('page2', [
        './app/Resources/assets/default/js/page2.js',
        './app/Resources/assets/default/scss/page2.scss',
    ])
    (... etc)
    .enableSassLoader(function(sassOptions) {}, {
        resolveUrlLoader: false
    })
    .autoProvidejQuery()
    .enableSourceMaps(!Encore.isProduction())
    .enableVersioning()
;

// export the final configuration
module.exports = Encore.getWebpackConfig();

Вот протестированный мной конфиг:

var Encore = require('@symfony/webpack-encore');
const configs = [];

//app
Encore.setOutputPath('web/build/main').setPublicPath('/build/main')
    .cleanupOutputBeforeBuild()
    .addEntry('app', './app/Resources/assets/default/js/main.js')
    .autoProvidejQuery()
    .enableSourceMaps(!Encore.isProduction())
    .enableVersioning()
    .cleanupOutputBeforeBuild()
;
const appConfig = Encore.getWebpackConfig();
appConfig.name='appConfig';
configs.push(appConfig);

//home
Encore.setOutputPath('web/build/home').setPublicPath('/build/home')
    .cleanupOutputBeforeBuild()
    .addEntry('home', [
        './app/Resources/assets/default/js/home.js',
        './app/Resources/assets/default/scss/home.scss',
    ])
    .enableSassLoader(function(sassOptions) {}, {
        resolveUrlLoader: false
    })
    .autoProvidejQuery()
    .enableSourceMaps(!Encore.isProduction())
    .enableVersioning()
    .cleanupOutputBeforeBuild()
;
const homeConfig = Encore.getWebpackConfig();
homeConfig.name='homeConfig';
configs.push(homeConfig);
(...etc)
module.exports = configs;

действительно ли webpack - инструмент, который мне нужен?

...