Я хочу создать стандартное экспресс-приложение с маршрутами, статическими файлами и т. Д.
И я хочу использовать веб-пакет для настройки моих статических файлов (например, чтобы получить уменьшенный CSS после сборки).
Итак, я создал какое-то базовое экспресс-приложение, установил веб-пакет, но что-то отключено, во-первых, CSS не применяется (отказался применять стиль из 'http://localhost:3000/css/main.css', потому что его тип MIME (' text / html ') ) не поддерживается MIME-типом таблицы стилей, и включена строгая проверка MIME.) Хотя я и использовал CSS-загрузчик, как и ожидалось, во-вторых, я думаю, что это неправильно, поэтому я надеялся, что кто-то с большим опытом может взглянуть на коды, и, возможно, может привести меня к лучшему подходу к этой «проблеме».
Webpack создает пакет, и после запуска экспресс-сервера он фактически загружает страницу, но, как я уже говорил, что-то кажется отключенным.
Файл конфигурации моего веб-пакета
const path = require('path');
const nodeExternals = require('webpack-node-externals');
module.exports = {
entry: './app.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'app.bundle.js'
},
target: 'node',
mode: 'development',
resolve: {
// Add '.ts' and '.tsx' as resolvable extensions.
extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
},
externals: [nodeExternals()],
module: {
rules: [
{
test: /\.css$/,
exclude: /node_modules/,
use: ['css-loader']
},
]
}
};
файл app.js
const path = require('path');
const express = require('express');
const bodyParser = require('body-parser');
const ejs = require("ejs").__express;
const app = express();
app.set('view engine', 'ejs');
app.set('views', 'views');
app.engine('ejs', ejs);
const shopRoutes = require('./routes/shop');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use(shopRoutes);
app.listen(3000, () => {
console.log('I am running')
});