首页 > 解决方案 > 尝试使用 gh-pages 部署我的 React 应用程序,但收到此错误消息:“文件”参数必须是字符串类型。接收类型未定义

问题描述

我试图用 gh-pages 部署我的 React 应用程序,但我遇到了这个错误:“文件”参数必须是字符串类型。接收到的类型未定义。

起初,我认为这是我的代码,所以我制作了另一个未修改的 create-react-app,尝试使用npm run deploy命令进行部署,但再次收到此错误消息。

我的 package.json(我添加了我的homepage链接、predeploydeploy脚本以及gh-pages依赖项):

  "name": "test-deploy",
  "version": "0.1.0",
  "private": true,
  "homepage": "https://vnsteven.github.io/test-deploy/",
  "dependencies": {
    "gh-pages": "^2.1.0",
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-scripts": "3.0.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

错误输出:

> npm run build


> test-deploy@0.1.0 build /Users/vansteven/Desktop/test-deploy
> react-scripts build

Creating an optimized production build...
Compiled successfully.

File sizes after gzip:

  36.44 KB  build/static/js/2.b41502e9.chunk.js
  770 B     build/static/js/runtime~main.90bc13d1.js
  601 B     build/static/js/main.74c1ab4e.chunk.js
  517 B     build/static/css/main.2cce8147.chunk.css

The project was built assuming it is hosted at /test-deploy/.
You can control this with the homepage field in your package.json.

The build folder is ready to be deployed.
To publish it at https://vnsteven.github.io/test-deploy/ , run:

  yarn run deploy

> test-deploy@0.1.0 deploy /Users/vansteven/Desktop/test-deploy
> gh-pages -d build

The "file" argument must be of type string. Received type undefined
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! test-deploy@0.1.0 deploy: `gh-pages -d build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the test-deploy@0.1.0 deploy script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/vansteven/.npm/_logs/2019-08-01T17_48_50_611Z-debug.log

le shell a retourné 1

日志:

1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'deploy' ]
2 info using npm@6.9.0
3 info using node@v10.16.0
4 verbose run-script [ 'predeploy', 'deploy', 'postdeploy' ]
5 info lifecycle test-deploy@0.1.0~predeploy: test-deploy@0.1.0
6 verbose lifecycle test-deploy@0.1.0~predeploy: unsafe-perm in lifecycle true
7 verbose lifecycle test-deploy@0.1.0~predeploy: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/vansteven/Desktop/test-deploy/node_modules/.bin:/Users/vansteven/.rvm/gems/ruby-2.5.1/bin:/Users/vansteven/.rvm/gems/ruby-2.5.1@global/bin:/Users/vansteven/.rvm/rubies/ruby-2.5.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vansteven/.rvm/bin
8 verbose lifecycle test-deploy@0.1.0~predeploy: CWD: /Users/vansteven/Desktop/test-deploy
9 silly lifecycle test-deploy@0.1.0~predeploy: Args: [ '-c', 'npm run build' ]
10 silly lifecycle test-deploy@0.1.0~predeploy: Returned: code: 0  signal: null
11 info lifecycle test-deploy@0.1.0~deploy: test-deploy@0.1.0
12 verbose lifecycle test-deploy@0.1.0~deploy: unsafe-perm in lifecycle true
13 verbose lifecycle test-deploy@0.1.0~deploy: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/vansteven/Desktop/test-deploy/node_modules/.bin:/Users/vansteven/.rvm/gems/ruby-2.5.1/bin:/Users/vansteven/.rvm/gems/ruby-2.5.1@global/bin:/Users/vansteven/.rvm/rubies/ruby-2.5.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vansteven/.rvm/bin
14 verbose lifecycle test-deploy@0.1.0~deploy: CWD: /Users/vansteven/Desktop/test-deploy
15 silly lifecycle test-deploy@0.1.0~deploy: Args: [ '-c', 'gh-pages -d build' ]
16 silly lifecycle test-deploy@0.1.0~deploy: Returned: code: 1  signal: null
17 info lifecycle test-deploy@0.1.0~deploy: Failed to exec deploy script
18 verbose stack Error: test-deploy@0.1.0 deploy: `gh-pages -d build`
18 verbose stack Exit status 1
18 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
18 verbose stack     at EventEmitter.emit (events.js:198:13)
18 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
18 verbose stack     at ChildProcess.emit (events.js:198:13)
18 verbose stack     at maybeClose (internal/child_process.js:982:16)
18 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
19 verbose pkgid test-deploy@0.1.0
20 verbose cwd /Users/vansteven/Desktop/test-deploy
21 verbose Darwin 16.7.0
22 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "deploy"
23 verbose node v10.16.0
24 verbose npm  v6.9.0
25 error code ELIFECYCLE
26 error errno 1
27 error test-deploy@0.1.0 deploy: `gh-pages -d build`
27 error Exit status 1
28 error Failed at the test-deploy@0.1.0 deploy script.
28 error This is probably not a problem with npm. There is likely additional logging output above.
29 verbose exit [ 1, true ]

此错误消息来自我全新的 React 应用程序。只有我的 package.json 被修改了。

标签: javascriptreactjsgithubnpmgithub-pages

解决方案


似乎是 gh-pages 2.1 中的一个错误。

我通过将 gh-pages 降级到 2.0 版解决了我的问题:

yarn add gh-pages@2.0 -D` // or

npm install -D gh-pages@2.0

推荐阅读