Я пытаюсь загрузить скрипт bundle.js в файл ejs? - PullRequest
1 голос
/ 18 марта 2019

Я пытаюсь запустить приложение реакции из моего файла index.ejs. Пакет строит. Однако, когда я направляю этот файл, я получаю 404 в сценарии bundle.js, файл index.ejs находится там и может отображать контент, но не приложение реакции. Кто-нибудь может увидеть, что мне не хватает? Вот как выглядит мой файл index.ejs:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Bookie Lou</title>
  </head>
  <body>
    <div id="root"></div>
      <script src="bundle.js"></script>
  </body>
</html>

Вот как выглядит мой файл маршрутов, где я устанавливаю, что хочу, чтобы index.ejs отображал запрос на получение '/index/home':

const express = require('express');
const router = express.Router();
const { ensureAuthenticated } = require('../config/auth');

router.get('/', (req, res) => res.render('welcome'))

router.get('/dashboard', ensureAuthenticated, (req, res) =>
  res.render('dashboard', {
    user: req.user
  })
);
router.get('/index/home', (req, res) => res.render('index'));

module.exports = router;

Мой веб-пакет выглядит так:

module.exports = {
  context: 
  path.join(__dirname, './src/'),

  entry: './index.jsx',
  devtool: 'source-map',
  output: {
    filename: 'bundle.js',
    path: path.join(__dirname, '/build'),
  },

  resolve: {
    extensions: ['.js', '.jsx','.json', '.css']
  },

  module: {
    rules: [
      {
        test: /\.jsx?$/,
        exclude: /node_modules/,
        loaders: ['babel-loader'],
      },
      {
        test: /\.index$/,
        use: 'file?name=[name].[ext]'
      },
      {
        test: /\.html$/,
        loader: 'file?name=[name].[ext]',
      },
      {
        test: /\.(gif|jpe?g|png|ico)$/,
        use: 'url-loader?limit=1000'
      },
      {
        test: /\.(css|less)$/,
        use: ['style-loader', 'css-loader', 'less-loader']
      }
    ],
  }
};

Мои файлы реакции, app.jsx и index.jsx, находятся в моей папке src. Мой файл bundle.js находится в папке с именем build. Обе папки находятся в корне.

1 Ответ

1 голос
/ 18 марта 2019

Я рекомендовал использовать html-webpack-plugin для ввода bundle.js в html.

https://github.com/jantimon/html-webpack-plugin

...