Загрузка html из файла в переменную шаблона vue

201
02 декабря 2021, 01:50

У меня есть один лэндинг на vue.js сляпаный на скорую руку. На этом сайте у меня не было и не предвидится базы данных, но вот необходимость расположить несколько статей оказалась.

Я в принципе выкрутился: положил в папку assets файлы статей, читал их в переменную и выводил потом.

Что меня не устраивает в этой схеме и что я хочу переделать со временем: расширение файла. Сейчас это txt, а я хочу чтобы было расширение html -- чтобы я мог в любой момент времени в vscode нажать ctrl+alt+F и переформатировать документ (в txt такого нет). И я не понимаю, почему raw-loader работает только если расширение файла txt.

Делал я по этому ответу (у меня тоже vue-cli 3).

Есть файл data.js:

import text1 from "@/assets/blog/1.article.txt";
import desc1 from "@/assets/blog/1.description.txt";
const data = {
  1: {
    id: 1,
    title: "tite1asdf",
    date: new Date(2008, 2, 28),
    text: text1,
    description: desc1
  }
};
export default data;

И создал vue.config.js как в ответе.

Вывожу в компоненте:

<div v-html="this.articles[this.id].text"></div>

Но как только пробую переименовать файлы в html и заменить поиск расширения на .test(/\.html$/) -- то получаю ошибку:

Module parse failed: Unexpected token (1:0) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders

Можно ли сделать это при помощи этого лоадера? Если нельзя, то какой использовать?

Answer 1

В конфиге webpack'а должно быть правило такого вида:

rules: [
  {
    test: /\/assets\/blog\/.*\.html$/i,
    use: 'raw-loader',
  },
  // ... 
],

Либо, можно попробовать импортировать так:

import text1 from '!!raw-loader!@/assets/blog/1.article.html';

Добавление !! указывает вебпаку игнорировать правила в его конфиге.

READ ALSO
Заполнить матрицу целыми числами по спирали JS

Заполнить матрицу целыми числами по спирали JS

Здравствуйте! Написала скрипт, который, по идее, должен генерировать матрицу размером 3х3 по спирали, начиная с левой стороныВсе бы ничего,...

202
Калькулятор на чистом JS

Калькулятор на чистом JS

Я недавно начал изучать JS (чистый) и решил создать калькуляторНесколько сделать удалось, но с одним не могу разобраться вот уже 10-ый день

78