laravel/ui를 사용할 때 발생한 오류 해결

6873 단어 npmPHP라라벨
현재 Laravel (ver6.20.9)을 사용하여 개인으로 웹 서비스를 제작하는 사람입니다.

Laravel6.x에서 Bootstrap이나 Vue 등이 디폴트에서는 포함되지 않게 된 것 같기 때문에, 그들을 Laravel에서 사용할 수 있도록 해주는 "laravel/ui"를 다운로드하기로했습니다.

그러나, 그 과정에서 나온 에러에 막혔으므로 메모해 가고 싶습니다.
(그렇다고 해도 매우 간단했습니다. 웃음)

laravel/ui 다운로드



laravel/ui의 다운로드에 대해서는, 이하를 참고로 했습니다.
laravel/ui 공식 문서
Laravel/UI 설치(Qiita 기사)

나름대로 순서를 정리하면,

터미널
①cdコマンドで、laravel/uiを利用したいディレクトリまで移動

②composer require laravel/ui "1.x" --dev
(composer必須)

③php artisan ui bootstrap
(Bootstrapを使う場合)

php artisan ui vue
(Vueを使う場合)

php artisan ui react
(Reactを使う場合)

④npm install

⑤npm run dev

②의 "1.x"부분에 대해서는 아래 표를 참고로 자신의 Laravel 버전에 맞게 바꾸어 주십시오.


laravel/ui 버전
Laravel 버전


1.x
5.8, 6.x

2.x
7.x

3.x
8.x


④와 ⑤에 대해서는 Node.js의 패키지를 관리하는 NPM(Node Package Manager)을 이용하고 있습니다.

④npm install에 의해, 준비되어 있는 편리한 기능(패키지)을 인스톨 할 수 있어, ⑤로 webpack.mix.js라고 하는 파일내에 써 있는 지시를 실행할 수 있는 것 같습니다.

여기서 오류가 ...



방금 전의 순서④를 실행했을 때

터미널
(中略)
found 1 high severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details

응? 뭔가 나왔다.

일본어 번역 해 보면

"심각도가 높은 취약점이 1개 발견되었습니다.

라는 것입니다.

그래서, 지시대로 「npm audit fix」를 실행하면,

터미널
% npm audit fix

+ [email protected]
added 1 package from 3 contributors and updated 1 package in 5.855s

51 packages are looking for funding
  run `npm fund` for details

fixed 1 of 1 vulnerability in 1096 scanned packages

무사히 해결할 수 있었던 것 같습니다.

「아~좋았다」라고 생각한 것도 무리의 사이, 순서 ⑤의 「npm run dev」를 실행했는데…

터미널
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.context: The provided value "/Users/ユーザー名/Laravel_CRUD/Atsumare!" contains exclamation mark (!) which is not allowed because it's reserved for loader syntax.
   -> The base directory (absolute path!) for resolving the `entry` option. If `output.pathinfo` is set, the included pathinfo is shortened to this directory.
 - configuration.module.rules[8].exclude should be one of these:
   RegExp | string | function | [(recursive)] | object { and?, exclude?, include?, not?, or?, test? } | [RegExp | string | function | [(recursive)] | object { and?, exclude?, include?, not?, or?, test? }]
   -> One or multiple rule conditions
   Details:
    * configuration.module.rules[7].exclude[0]: The provided value "/Users/ユーザー名/Laravel_CRUD/Atsumare!/resources/sass/app.scss" contains exclamation mark (!) which is not allowed because it's reserved for loader syntax.
    * configuration.module.rules[7].exclude[0]: The provided value "/Users/ユーザー名/Laravel_CRUD/Atsumare!/resources/sass/app.scss" contains exclamation mark (!) which is not allowed because it's reserved for loader syntax.
    * configuration.module.rules[8].exclude[0]: The provided value "/Users/ユーザー名/Laravel_CRUD/Atsumare!/resources/sass/app.scss" contains exclamation mark (!) which is not allowed because it's reserved for loader syntax.
    * configuration.module.rules[8].exclude[0]: The provided value "/Users/ユーザー名/Laravel_CRUD/Atsumare!/resources/sass/app.scss" contains exclamation mark (!) which is not allowed because it's reserved for loader syntax.
 - configuration.output.path: The provided value "/Users/ユーザー名/Laravel_CRUD/Atsumare!/public" contains exclamation mark (!) which is not allowed because it's reserved for loader syntax.
   -> The output directory as **absolute path** (required).

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ development 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/ユーザー名/.npm/_logs/2021-01-xxTxx_xx_xx_135Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ dev: `npm run development`
npm ERR! Exit status 1
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!     /Users/ユーザー名/.npm/_logs/2021-01-xxTxx_xx_xx_168Z-debug.log

뭔가 빨간 글자로 가득 나왔다!

여기서 나는 조금 막혀 버렸습니다만, 어느 기사를 발견했습니다.

그것이 여기

Shawn Dhave 님의 답변을 인용합니다.

Had the same error. The problem seems to be in the path of your folder. It must not contain an exclamation mark(!). Change folder 'HelloWorld!' to just 'HelloWorld' without the exclamation mark.
Hope this solves the problem.

일본어 번역하면

"나도 같은 오류를 경험했다.
폴더 경로에 문제가있는 것 같습니다. 폴더 경로에 느낌표(!)를 포함해야 한다. 그래서 폴더 이름을 'HelloWorld! 」가 아니라, 감탄부가 없는 「HelloWorld」만으로 바꾸어 봐. 이것이 해결책이 되길 바랍니다.

됩니다.

응?
폴더 이름에 "!"를 붙이면 안 돼?

pwd 명령으로 자신의 폴더 이름(경로)을 확인해 봅니다.

터미널
/Users/ユーザー名/Laravel_CRUD/Atsumare!



붙여 버렸어! !

나는 「Atsumare!(아츠레!)」라고 하는 이름으로 모집 게시판형의 서비스를 만들려고 하고 있어, 거기에 맞추어 폴더명도 「Atsumare!」로 하고 있었습니다만…
분명히 오류가 발생한 것 같습니다.

그래서 ""Atsumare!"를 "Atsumare"로 수정했습니다.

그리고 ⑤의 "npm run dev"를 실행하면 ...

터미널
> @ dev /Users/ユーザー名/Laravel_CRUD/Atsumare
> npm run development


> @ development /Users/ユーザー名/Laravel_CRUD/Atsumare
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js



 DONE  Compiled successfully in 7151ms                                  16:36:11

       Asset      Size   Chunks             Chunk Names
/css/app.css   178 KiB  /js/app  [emitted]  /js/app
  /js/app.js  1.08 MiB  /js/app  [emitted]  /js/app


안전하게 실행할 수있었습니다! !

교훈



「폴더명(디렉토리명)에 「느낌표(!)」를 붙이는 것은 그만둡시다」



라는 교훈이었습니다 😅

여러분도 조심해!

좋은 웹페이지 즐겨찾기