尝试运行“npm run deploy”时,npm 没有此类文件或目录

nes*_*ssa 1 github node.js npm github-pages reactjs

我收到此错误:

no such file or directory, stat 'C:\Users\nessa\VS Code\React-Django\website\frontend\build'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! frontend@1.0.0 deploy: `gh-pages -d build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the frontend@1.0.0 deploy script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Run Code Online (Sandbox Code Playgroud)

当尝试运行 npm run deploy 时。

这是我的package.json文件,位于我的.\website\frontend

{
  "name": "frontend",
  "version": "1.0.0",
  "private": true,
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "react-scripts start",
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build",
    "dev": "webpack --mode development --watch",
    "build": "webpack --mode production"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.13.13",
    "@babel/preset-env": "^7.13.12",
    "@babel/preset-react": "^7.13.13",
    "babel-loader": "^8.2.2",
    "css-loader": "^5.2.0",
    "gh-pages": "^3.1.0",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "style-loader": "^2.0.0",
    "webpack": "^5.28.0",
    "webpack-cli": "^4.6.0"
  },
  "dependencies": {
    "@babel/plugin-proposal-class-properties": "^7.13.0",
    "@material-ui/core": "^4.11.3",
    "@material-ui/icons": "^4.11.2",
    "@material-ui/lab": "^4.0.0-alpha.57",
    "react-material-ui-carousel": "^2.2.4",
    "react-router-dom": "^5.2.0",
    "react-speech": "^1.0.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

我一直从同一位置运行 npm run dev ,没有出现任何问题。我正在尝试在 Github 上托管我的 React 应用程序。我尝试重新安装 gh-pages,以防文件未正确安装,但遇到了同样的问题。我应该怎么做才能解决这个问题?

编辑:我尝试按照这里所说的进行操作,但仍然不起作用。这是我的 webpack.config.js 如果有帮助的话。

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

module.exports = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, './static/frontend'),
    filename: '[name].js',
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
        },
      },
      {
        test: /\.css$/i,
        use: ['style-loader', 'css-loader'],
      },
    ],
  },
  optimization: {
    minimize: true,
  },
  plugins: [
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('development'),
    }),
  ],
}

Run Code Online (Sandbox Code Playgroud)

我还将 package.json 脚本中的 "build": "webpack --mode production" 更改为 "build": "webpack --modedevelopment",以便运行 npm run build,但问题仍然没有解决。

小智 9

在package.json中添加:

"scripts": {"predeploy": "npm run build","deploy": "gh-pages -d dist",}
Run Code Online (Sandbox Code Playgroud)

说明: 就我而言,我使用 Vite 来创建我的 React 应用程序。因此,通过运行npm run deploy,vite 为生产创建了一个“dist”文件夹。但"deploy": "gh-pages -d build"正在监视文件build夹。现在 gh-pages 将在部署之前查找dist文件夹。