有效使用webpack Encore

时间:2018-12-14 10:12:08

标签: symfony webpack assets saas webpack-encore

通过使用Web pack Encore来改善Symfony项目中资产的编译时间,我发现自己的编译永无止境,这使我认为有些事情使我无所适从。我很难理解这个工具。我想了解如何在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是我真正需要的工具吗?

0 个答案:

没有答案