Загрузчик сырья с импортом ES6

Я пытаюсь использовать ES6 с веб-пакетом. Это нормально для импорта / экспорта модуля javascript, но я не могу заставить работать raw-loader.

Вот что я собираюсь сделать в моем исходном файле

import template from './template.html'

Файл template.html содержит необработанный HTML.

module.exports = {
  context: __dirname,
  entry: [
    'babel-polyfill',
    './app/app.js',
  ],
  module: {
    preLoaders: [
      {
        test: /\.js$/,
        include: __dirname + '/app/',
        loader: 'eslint-loader',
      },
    ],
    loaders: [
      {
        test: /\.js$/,
        include: __dirname + '/app/',
        loader: 'babel-loader?presets[]=es2015',
      },
      {
        test: /\.html$/,
        include: __dirname + '/app/',
        loader: 'raw-loader',
      },
    ],
  },
  output: {
    path: './build/',
    filename: 'app.js',
  },
};

Когда я запускаю веб-пакет, код генерируется так:

  module.exports = "module.exports = \"  hello\\n  <div>\\n    <ul>\\n      <li ng-repeat...

Это должно быть только "hello\n <div>..." Строка, которая должна быть экспортирована.

Любая помощь в этом? Я действительно не понимаю, как это сделать.

1 ответ

Импорт с помощью raw-loader возвращает объект со свойством по умолчанию (импорт * в качестве шаблона из "./file"). Вы можете назвать это template.default, чтобы получить то, что вы хотите.

Здесь был вопрос Simmillar

И здесь вы не можете взглянуть на то, как можно обновить код загрузчика raw, чтобы использовать импортированное значение как есть. Просто возился с этим какое-то время

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