Публикация встроенного веб-приложения на страницах Github - PullRequest
0 голосов
/ 14 апреля 2020

У меня следующая структура каталогов.

dist
  - bundle.js
public
  - index.css
  - index.html
src
  - index.js

и следующая конфигурация веб-пакета для go с ним.

const path = require("path");
const webpack = require("webpack");

module.exports = {
  entry: "./src/index.js",
  mode: "development",
  module: {
    rules: [
      {
        test: /\.(js)$/,
        exclude: /(node_modules|bower_components)/,
        loader: "babel-loader",
        options: { presets: ["@babel/env"] }
      },
      {
        test: /\.css$/,
        use: ["style-loader", "css-loader"]
      }
    ]
  },
  resolve: { extensions: ["*", ".js"] },
  output: {
    path: path.resolve(__dirname, "dist/"),
    publicPath: "/dist/",
    filename: "bundle.js"
  },
  devServer: {
    contentBase: path.join(__dirname, "public/"),
    port: 3000,
    publicPath: "http://localhost:3000/dist/",
    hotOnly: true
  },
  plugins: [new webpack.HotModuleReplacementPlugin()]
};

Проблема в том, что мой .gitignore имеет Каталог dist в нем, просто потому, что в руководстве сказано, что это лучшая практика.

Я создаю веб-страницу, используя webpack --mode production.

Теперь проблема в том, что я хочу иметь возможность sh до ветви gh-pages с минимально возможными изменениями. В идеале я бы хотел, чтобы gh-pages отслеживал master, но, возможно, это невозможно.

Страницы Github автоматически обслуживают index.html, расположенный в root, поэтому есть несколько проблем.

  1. dist находится в Gitignore, поэтому bundle.js не выдвигается до gh-pages.

  2. index.html находится в * Каталог 1032 *, поэтому gh-pages не может его найти.

  3. index.html в разработке загружается ../dist/bundle.js, которого не существует

Конечно, я легко справился с этим, вытянув bundle.js и изменив путь на index.html, но это кажется невероятно неэффективным. Есть ли лучший способ развернуть сайт stati c, созданный с помощью webpack, на gh-pages?

Спасибо!

...