Вероятно, это скорее теоретический вопрос, поэтому я просто напишу свои мысли ... Я заменяю сборку на webpack_encore в нашем приложении Symfony 3.4.Локально работает все отлично, но когда я развертываю его в нашей тестовой среде через Jenkins, он прекрасно генерирует все ресурсы, но Entrypoints.json заполнен не информацией о точках входа, а одним (не существующим) файлом.Jenkins, Composer Install, NPM BUILD и т. Д. Ничего не выходит из строя все выглядит просто отлично ...
Я работаю с:
- "symfony / symfony": "3.4. *",
- "symfony / webpack-encore-bundle": "^ 1.4",
- "@ symfony / webpack-encore": "^ 0.26.0";
- Дженкинсверы.2.167
То, что я сделал и проверил:
- Выходной путь webpack_encore задается в конфигурационных файлах Symfony, а также в webpack.config.js;
- Установлены разрешения на чтение / запись файлов (они создаются заново при каждой сборке)
- пробовал в другой среде (та же проблема, нет точек входа в .json)
- попытался воспроизвестиlokal (не получилось)
- попробовал другую версию узла (8.x)
Так вот как выглядит Entrypoints.json:
{
"entrypoints": {
"main": {
"js": [
"/assets/main.d062ba67.js"
]
}
}
}
и вот список сгенерированных файлов:
-rw-r--r-- 1 deploy deploy 1188442 Apr 4 16:03 0.2d854ee0.js
-rw-r--r-- 1 deploy deploy 13270 Apr 4 16:03 0.e9d891b2.css
-rw-r--r-- 1 deploy deploy 103 Apr 4 16:03 entrypoints.json
drwxr-xr-x 2 deploy deploy 4096 Jan 21 11:04 fonts
drwxr-xr-x 2 deploy deploy 4096 Jan 21 11:04 images
-rw-r--r-- 1 deploy deploy 50 Apr 4 16:03 manifest.json
-rw-r--r-- 1 deploy deploy 273060 Apr 4 16:03 mijn.51e8a5cf.css
-rw-r--r-- 1 deploy deploy 399784 Apr 4 16:03 mijn.b4e892a5.js
-rw-r--r-- 1 deploy deploy 155 Apr 4 16:03 mijn_servicecentre.8ad08279.js
-rw-r--r-- 1 deploy deploy 8867 Apr 4 16:03 mijn_servicecentre.aed8de72.css
-rw-r--r-- 1 deploy deploy 131539 Apr 4 16:03 mijn_translations.6510f7fd.js
-rw-r--r-- 1 deploy deploy 1463 Apr 4 16:03 runtime.3dee20dd.js
EDIT :: Наконец, webpack.config.js
/* global __dirname */
let Encore = require("@symfony/webpack-encore");
const path = require("path");
Encore
// output path
.setOutputPath("web/assets")
.enableVersioning()
// relative path in the browser
.setPublicPath("/assets")
// will create web/assets/mijn.js and web/assets/mijn.css && serviceCenter
// which is than included in base.html.twig and respective...
.addEntry("mijn", "./app/Resources/frontend/encore_mijn.js")
.addEntry("mijn_servicecentre", "./app/Resources/frontend/encore_mijn_servicecentre.js")
// enable sass-compilation
.enableSassLoader(function (sassOptions) {
sassOptions.includePaths = [
"node_modules/bootstrap-sass/assets/stylesheets",
"node_modules/bootstrap-datepicker/dist/css",
"node_modules/bootstrap-select/sass",
"node_modules/xs4-icons/dist/"
];
}, {
resolveUrlLoader: true
})
//expose jquery
.addLoader({
test: require.resolve("jquery"),
use: [{
loader: "expose-loader",
options: "jQuery"
}, {
loader: "expose-loader",
options: "$"
}, {
loader: "expose-loader",
options: "Snow"
}]
})
.addLoader({
test: require.resolve("bazinga-translator"),
use: [{
loader: "expose-loader",
options: "Translator"
}],
})
.addLoader({
loader: "webpack-modernizr-loader",
test: /\.modernizrrc\.js$/
})
.addAliases({
modernizr$: path.resolve(__dirname, "./.modernizrrc.js")
})
//enable compilation of vue-components
.enableVueLoader()
//enable sourcemaps for development reasons only
.enableSourceMaps(!Encore.isProduction())
// enable postcss loader for autoprefixing
.enablePostCssLoader()
// empty the outputPath dir before each build
.cleanupOutputBeforeBuild()
.enableSingleRuntimeChunk()
.enableSingleRuntimeChunk()
.splitEntryChunks()
;
// isProduction because we get in dev-mode real-time translation
// out of _translations.html.twig and the bazinga vendor plugin
if (Encore.isProduction()) {
Encore.addEntry("mijn_translations", "./app/Resources/frontend/encore_translations.js")
}
// export the final configuration
module.exports = Encore.getWebpackConfig();
Есть ли у кого-нибудь мысли о том, как это можетможет быть, файлы точек входа генерируются просто отлично, но Entrypoints.json этим не заполнен?
EDIT 2 ::
Я снова запускаю все свои коммиты, и похоже, что так как яобновлен пакет npm: webpack-encore с 0.20.1 до 0.21, для которого требуется babel7eaking ...