Как установить, несколько регистрируют запись/вывод в проекте с webpack?
Я следую за компиляцией успеха http://webpack.github.io/docs/tutorials/getting-started/ если только один файл в одной записи/выводе...
каталог
app
webpack.config.js
./assets
././javascripts/Administrator/Article/Create/Base.js
././javascripts/Administrator/Article/Edit/Base.js
././javascripts/Account/Index/Base.js
././javascripts/Contact/Index/Base.js
...
как произвести как это?
././javascripts/Administrator/Article/Create/bundle.js
././javascripts/Administrator/Article/Edit/bundle.js
././javascripts/Account/Index/bundle.js
././javascripts/Contact/Index/bundle.js
webpack.config.js
module.exports = {
entry: {
'AdministratorArticleCreate':['./assets/javascripts/Administrator/Article/Create/Base.js']
},
output: {
path:
}
// if only one file
// entry: "./assets/javascripts/Administrator/Article/Create/Base.js",
// output: {
// // path: __dirname,
// path: "./assets/javascripts/Administrator/Article/Create/",
// filename: "bundle.js"
// }
};
Можно обнаружить многократные въезды и генерировать отдельные выходные файлы при помощи синхронизация шарика шаблоны.
Помещенный это в Ваш webpack.config.js
(без ...
)
const glob = require("glob");
...
module.exports = (env, options) => ({
...
entry: glob.sync("./javascripts/**/*.js").reduce((acc, item) => {
const path = item.split("/");
path.pop();
const name = path.join('/');
acc[name] = item;
return acc;
}, {}),
output: {
filename: "[name]/bundle.js",
path: path.resolve(__dirname, "")
},
...
});
Это "должно" дать Вам желаемый вывод.
Для моего варианта использования я на самом деле должен был использовать различные шаблоны на основе среды. Для достижения этого, я передал в переменной NODE_ENV
module.exports = (env, argv) => {
const ENVIRONMENT = env.NODE_ENV;
let INDEX_HTML = 'index.html';
if (ENVIRONMENT === 'staging') {
INDEX_HTML = 'index-stg.html';
}
Затем:
if (NODE_ENV === 'staging') {
INDEX_HTML = 'index-stg.html';
}
В выводе:
output: {
path: process.cwd() + '/build',
filename: `[name].js`,
chunkFilename: `[${HASH_MODE}].[name].js`
},
плагины:
new HtmlWebpackPlugin({
inject: true,
template: `app/${INDEX_HTML}`,
}),