Webpack - включить файл несколько раз - PullRequest
0 голосов
/ 11 ноября 2018

Я хочу включить файл дважды через два разных загрузчика. Причина в том, что я хочу отображать фрагменты кода в ES6, в то же время позволяя запускать их в браузерах, не поддерживающих синтаксис.

Эффективно, чего я хотел бы добиться, это ниже, но с результатами обоих загрузчиков, включенных в вывод -

{
    test: /\.(js|jsx)$/,
    exclude: /node_modules/,
    loader: "babel-loader"
},
{
    test: /\.(js|jsx)$/,
    include: /app\/examples/,
    use: [
      {
        loader: "file-loader",
        options: {
          regExp: /app\/examples\/([^\/]+)\/([^\.]+)+\.jsx?$/,
          name: 'examples/[1]/[2].example',
        }
      }
    ]
  }

С вышеизложенным в моем конфиге webpack

import example from '../../examples/simple/ex1'

Результаты в

Module {default: "examples/simple/ex1.example", __esModule: true, Symbol(Symbol.toStringTag): "Module"}

Вместо того, чтобы код запускался через babel, как я и надеялся.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

В конце концов мне не удалось справиться с этим с помощью загрузчиков - хотя при дальнейшем чтении я не верю, что это был правильный подход в любом случае. Вместо этого я сейчас использую copy-webpack-plugin для копирования файлов -

plugins: [
  new CopyWebpackPlugin([ {
    from: path.join(rootDir, 'app', 'examples'),
    to: path.join(outputDir, 'examples')
  }])
],
module: {
  rules: [
    {
      test: /\.(js|jsx)$/,
      exclude: /node_modules/,
      loader: "babel-loader"
    }
  ]
}
0 голосов
/ 12 ноября 2018
const multi = require('multi-loader');
const combineLoaders = require('webpack-combine-loaders');

module: {
  loaders: [
    {
      test: /\.(js|jsx)$/,
      exclude: /node_modules/,
      include: /app\/examples/,
      loader: multi(combineLoaders([
        { loader: 'file-loader' },
        { loader: 'babel-loader' },
      ]))
    },
  ]
}

Это должно сработать. Вы также должны использовать combLoaders, как вы должны использовать объект параметров. внутри массива загрузчиков комбайнов вы также можете передать конфигурацию загрузчика.

...