c
Size: a a a
c
#
#
#
AA
AA
webpack-dev-middleware
, который используется внутри WDS.c
webpack.config.js
---------------------------------------------------------------
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
mode: process.env.NODE_ENV,
entry: {
home: ['./home.js', './home.scss'],
account: ['./account.js', './account.scss'],
},
output: {
filename: '[name].js',
},
module: {
rules: [
{
test: /\.scss$/,
use: [
// fallback to style-loader in development
process.env.NODE_ENV !== 'production' ? 'style-loader' : MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
],
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: '[name].css',
}),
],
};
Можно-ли в таком случае, следуя этой логике добавить в массив к примеру './home.pug'
и './account.pug'
соответственно?entry: {
common: ['./assets/js/common.js', './asets/scss/common.scss'],
home: ['./home.js', './home.scss'],
account: ['./account.js', './account.scss'],
},
и уже тогда с помощью import
прописывать их в необходимых точках входа (в данном случае - home.js
и account.js
) или же просто перечислить в соответствующем массиве для каждого entry ?entry: {
home: ['./home.js', './home.scss', 'common.js', 'common.scss'],
account: ['./account.js', './account.scss', 'common.js', 'common.scss'],
},
Пожалуй еще уточню, что интересуюсь таким подходом с целью создания стартового шаблона для верстки с использованием sass, pug, es6. Т.е. никакого Реакта, маршрутизации и чего-то подобного в проекте не будет. Это надо для целей статичной многостраничной верстки с максимальной автоматизацией и разрешением всех зависимостей любых типов .11ty
осведомлен.TG
E
c
devServer: {
//contentBase: path.resolve(__dirname, 'build'),
port: 8080,
disableHostCheck: true,
stats: 'minimal',
hot: true,
compress: true,
overlay: true,
open: true,
historyApiFallback: true,
watchOptions: {
aggregateTimeout: 100,
poll: true,
ignored: 'node_modules',
},
}
И вроде все нормально.E
devServer: {
//contentBase: path.resolve(__dirname, 'build'),
port: 8080,
disableHostCheck: true,
stats: 'minimal',
hot: true,
compress: true,
overlay: true,
open: true,
historyApiFallback: true,
watchOptions: {
aggregateTimeout: 100,
poll: true,
ignored: 'node_modules',
},
}
И вроде все нормально.c
KS
target: "web"
E
target: "web"
AA
hot
хорошо работает с SPA, а если нужно наблюдать статику или результат работы HTML-шаблонизатора (Pug, EJS и т.п. - всё, что в итоге гонится через HtmlWebpackPlugin), её желательно складывать в отдельную директорию и следить за изменениями как раз с помощью contentBase
+ watchContentBase
. В create-react-app
как-то так реализовано: HTML-шаблон лежит в public
и при его изменениях происходит refresh, а при изменениях в src
происходит HMR.E
target: "web"
y
web
E
KS
web
E