Как установить, несколько регистрируют запись и вывод в проекте с webpack?

Как установить, несколько регистрируют запись/вывод в проекте с 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"
    // }
};

57
задан 9 August 2015 в 22:55

2 ответа

Можно обнаружить многократные въезды и генерировать отдельные выходные файлы при помощи синхронизация шарика шаблоны.

Помещенный это в Ваш 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, "")
  },
  ...
});

Это "должно" дать Вам желаемый вывод.

4
ответ дан 1 November 2019 в 15:49

Для моего варианта использования я на самом деле должен был использовать различные шаблоны на основе среды. Для достижения этого, я передал в переменной 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}`,
      }),
1
ответ дан 1 November 2019 в 15:49

Другие вопросы по тегам:

Похожие вопросы: