如何解决 Laravel 护照安装错误?

How to resolve Laravel passport install error?

我目前正在使用 https://laravel.com/docs/5.7/passport 中的文档设置 Larvel 的 Passport。一切正常,直到我必须 运行 命令 npm 运行 dev 然后我收到以下错误。

我正在寻找有关如何解决此问题的一些见解。

* ./components/passport/AuthorizedClients.vue in ./resources/js/app.js
* ./components/passport/Clients.vue in ./resources/js/app.js
* ./components/passport/PersonalAccessTokens.vue in ./resources/js/app.js
       Asset     Size  Chunks                    Chunk Names
  /js/app.js  1.38 MB       0  [emitted]  [big]  /js/app
/css/app.css   198 kB       0  [emitted]         /js/app

ERROR in ./resources/js/app.js
Module not found: Error: Can't resolve './components/passport/AuthorizedClients.vue' in '/projects/dw_api_gateway/laravel/resources/js'
 @ ./resources/js/app.js 22:45-99
 @ multi ./resources/js/app.js ./resources/sass/app.scss

ERROR in ./resources/js/app.js
Module not found: Error: Can't resolve './components/passport/Clients.vue' in '/projects/dw_api_gateway/laravel/resources/js'
 @ ./resources/js/app.js 20:34-78
 @ multi ./resources/js/app.js ./resources/sass/app.scss

ERROR in ./resources/js/app.js
Module not found: Error: Can't resolve './components/passport/PersonalAccessTokens.vue' in '/projects/dw_api_gateway/laravel/resources/js'
 @ ./resources/js/app.js 24:49-106
 @ multi ./resources/js/app.js ./resources/sass/app.scss
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! @ dev: `NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the @ dev 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!     /root/.npm/_logs/2018-09-22T02_04_09_398Z-debug.log

编辑

原来护照有一个未解决的问题。

https://github.com/laravel/passport/issues/829

您的问题很可能是由于 vendor:publish 将组件发布到错误的目录。

Laravel 5.7 之前,东西存储在 resources/assets/js 中,现在在 5.7 中它们存储在 assets/js 中,这导致了像您遇到的问题。


确保你运行发布组件的命令

php artisan vendor:publish --tag=passport-components

发布的组件将放置在您的resources/js/components 目录中。组件发布后,您应该在 resources/js/app.js 文件中注册它们:

Vue.component(
    'passport-clients',
    require('./components/passport/Clients.vue')
);

Vue.component(
    'passport-authorized-clients',
    require('./components/passport/AuthorizedClients.vue')
);

Vue.component(
    'passport-personal-access-tokens',
    require('./components/passport/PersonalAccessTokens.vue')
);