Как заставить gh-страницы найти пакет. js - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь развернуть приложение React из веб-пакета на моих страницах gh.

Вот сценарии, которые я использую для сборки и развертывания.

  "scripts": {
    "start": "webpack-dev-server --open --mode development",
    "build": "webpack --mode production",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "watch": "webpack-dev-server --progress",
    "deploy": "gh-pages -d dist"
  },

После запуска:

npm run build
npm run deploy

Моя папка / dist / развернута в ветке gh-pages. https://github.com/Damhan/Serify/tree/gh-pages

При переходе к https://damhan.github.io/Serify/ страница пуста.

Консоль выдает следующую ошибку:

Failed to load resource: the server responded with a status of 404 (Not Found) bundle.js:1

Вот мой конфиг веб-пакета:

const path = require("path");

module.exports = {
    entry: path.resolve(__dirname, "./src/index.js"),
    output: {
      filename:"bundle.js",
      path: path.resolve(__dirname, '/dist')
    },
    module: {
        rules: [
          {
            test: /\.(js|jsx)$/,
            exclude: /node_modules/,
            use: {
              loader: "babel-loader"
            }
          },
          {
            test: /\.s[ac]ss$/i,
            use: [
              // Creates `style` nodes from JS strings
              'style-loader',
              // Translates CSS into CommonJS
              'css-loader',
              // Compiles Sass to CSS
              'sass-loader',
            ],
          },
          {
            test: /\.css$/,
            loaders: ["style-loader", "css-loader"]
          }
        ]
    },
    devServer: {
      contentBase: path.join(__dirname, "/dist"),
      historyApiFallback:true

    }


};

1 Ответ

1 голос
/ 28 января 2020

Я полагаю, что когда вы запускаете сборку и развертывание, ваша домашняя страница находится на /. Но на самом деле ваша домашняя страница https://damhan.github.io/Serify/.

В пакете. json, добавьте это:

{
  "name": "serify",
  "version": "0.1.0",
  "private": true,
  "homepage": "https://damhan.github.io/Serify/",
  ...
}

Также я посмотрел на вашу index.html в папке publi c, которую вы вручную добавили <script src=".bundle.js"></script>. В этом случае я бы добавил <script src="/Serify/bundle.js"></script> вместо.

...