Как правильно использовать веб-пакет в экспресс-приложении, в то время как view-engine - ejs? - PullRequest
0 голосов
/ 07 июля 2019

Я хочу создать стандартное экспресс-приложение с маршрутами, статическими файлами и т. Д. И я хочу использовать веб-пакет для настройки моих статических файлов (например, чтобы получить уменьшенный 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')
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...