我使用Symfony 4 + Encore / Webpack。我想将整个文件夹(包含图像)复制到dist文件夹。
这是我的webpack配置:
Encore
// the project directory where compiled assets will be stored
.setOutputPath('public/build/')
.setPublicPath('/build')
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())
.enableSassLoader(function(sassOptions) {}, {
resolveUrlLoader: false
})
.autoProvidejQuery()
.addEntry('js/app', './assets/js/app.js')
.addEntry('js/home', './assets/js/home.js')
.addEntry('js/map', './assets/js/map.js')
.addPlugin(new CopyWebpackPlugin([
// copies all images
{ from: './assets/images/*', to: 'images/', flatten: true },
]))
并且不会复制images文件夹。我有一个Symfony 4的默认安装。
有没有办法以简单的方式将文件夹及其资源复制到dist文件夹?在没有插件的情况下使用Encore?
修改
好的,现在我会使用一种技巧,我不明白为什么Symfony没有提供任何关于图像/静态管理的明确文档。
我把它放在我的主js文件中:
const imagesContext = require.context('../images', true, /\.(png|jpg|jpeg|gif|ico|svg|webp)$/);
imagesContext.keys().forEach(imagesContext);
更多信息:http://aerendir.me/2018/04/06/managin-static-images-webpack-encore/
它完美运行并将/ assets / images文件夹中的所有图像放到 / public / build / images 文件夹中。