@lilwings

Настройка webpack для MPA?

Всем привет!

Можно ли настроить webpack на такую работу:

1) Отдельно собирать scss файлы из точки входа index.scss
2) Отдельно собирать ts файлы из точки входа index.ts
3) Отдельно проходиться по всем html файлам из папки src/html и складывать их в /output/. Чтобы внутри html файлы могли импортировать в себя другие html файлы. Т.е в src/html/ находятся страницы которые импортируют в себя нужные фрагменты. (Использовать include в html)

Как я понимаю webpack для SPA приложений и для такого он не подходит.
  • Вопрос задан
  • 356 просмотров
Решения вопроса 2
@andreysuha
Что то знаю
1. Css импортируется в js/ts
2. Да
3. Да
Ответ написан
bingo347
@bingo347
Crazy on performance...
1) Отдельно собирать scss файлы из точки входа index.scss
Примерно такой конфиг:
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
  entry: path.join(__dirname, 'src/styles/entry.scss'),
  output: {
    filename: 'drop-it.js', // от js артефакта никуда не деться, но файл по сути будет пустой
    path: path.join(__dirname, 'dist')
  },
  module: {
    rules: [{
      test: /\.scss$/,
      use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
    }]
  },
  plugins: [new MiniCssExtractPlugin({
    filename: 'styles.css'
  })]
};


Отдельно собирать ts файлы из точки входа index.ts
да без проблем, опять таки нужен будет ts-loader. Ну и скажу свое ИМХО тут, что транспайлинг лучше не доверять тайпскрипту, а подключить бабель с пресетом env
ну и не забыть настроить как для бабеля так и в ts-config, что выходные модули должны быть ES, иначе останетесь без тришейкинга.

Отдельно проходиться по всем html файлам из папки src/html и складывать их в /output/
с этим уже по заморочнее будет
Для импортов думаю нужен какой то препроцессор будет, ща с ходу и не соображу, чем можно, сам разве что на handlebars такое делал
Для обработки вебпаком можно взять это https://webpack.js.org/loaders/html-loader/
Для подключения всех файлов из папки по образцу можно использовать https://webpack.js.org/api/module-methods/#require...
ну и еще нужно будет как то извлечь все в отдельные файлы, хотя я лично бы не парился с поиском готовых решений, а просто воткнул бы свой лоадер и в нем бы писал все в файл
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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