npm installでnpm WARN deprecated
エラー
npm installを行うと下記の警告が表示される
$ npm install npm WARN deprecated axios@0.19.2: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies. npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated core-js@2.6.12: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
解決方法
依存関係の警告なので、それを解決する。
#① $ npm install david -g #② $ david update
$david update
を実行すると下記のメッセージが出ました。
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) Finished. Please run Mix again. 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.
Finished. Please run Mix again.
とあるので、もう一度ビルドする。
$ npm run dev . . . Laravel Mix v6.0.18 ✔ Compiled Successfully in 9707ms ┌─────────────────────────────────────────────────────────────────────────────────────────────────┬──────────┐ │ File │ Size │ ├─────────────────────────────────────────────────────────────────────────────────────────────────┼──────────┤ │ /js/app.js │ 673 KiB │ │ css/app.css │ 3.95 MiB │ └─────────────────────────────────────────────────────────────────────────────────────────────────┴──────────┘
無事ビルドできました。
参考サイト
先人の知恵に感謝です。
Access denied for user 'localhost' (using password: NO)
エラー
マイグレーションを実行すると下記のエラーが発生しました。
$ php artisan migrate SQLSTATE[HY000] [1045] Access denied for user 'localhost' (using password: NO)
環境
- docker環境
- Laravel
- MySQL
原因
.envファイルのDB_PASSWORDが間違っていた。
試したこと
mysqlにログインしてユーザ名とパスワードが間違っていないかチェックしました。
# rootユーザーでログイン $ docker-compose exec db bash -c 'mysql -uroot -p'
これでパスワードが間違っていたことに気がついたので、.envのDB_PASSWORDを修正しました。
参考サイト
MacにSeleniumをインストールする
実現したいこと
外部サイトの入力フォームに、指定した入力値を自動入力し、検索ボタンを自動押下したい。
必要な技術
Selenium(セレニウム)。
Seleniumは、webブラウザの操作を自動化するために作られたフレームワーク。
動かすにはPythonが必要。
環境構築
Chromeをインストールし、バージョンを確認する
https://www.google.co.jp/chrome/
インストールができたら、Chromeタブ>GoogleChromeについてをクリックし、バージョンを確認します。
当環境では89.0.4389.72でした。
pythonが入っていることを確認する
バージョンが表示されない場合は、pythonを入れてください。
$ python --version Python 3.6.5
pipコマンドをインストールする
$ easy_install pip Searching for pip Best match: pip 20.0.2 Adding pip 20.0.2 to easy-install.pth file Installing pip script to /Users/misaki.inoue/.pyenv/versions/3.6.5/bin Installing pip3 script to /Users/misaki.inoue/.pyenv/versions/3.6.5/bin Installing pip3.8 script to /Users/misaki.inoue/.pyenv/versions/3.6.5/bin Using /Users/misaki.inoue/.pyenv/versions/3.6.5/lib/python3.6/site-packages Processing dependencies for pip Finished processing dependencies for pip
Seleniumをインストールする
$ pip install selenium Collecting selenium Downloading selenium-3.141.0-py2.py3-none-any.whl (904 kB) |████████████████████████████████| 904 kB 5.6 MB/s Collecting urllib3 Downloading urllib3-1.26.3-py2.py3-none-any.whl (137 kB) |████████████████████████████████| 137 kB 8.9 MB/s Installing collected packages: urllib3, selenium Successfully installed selenium-3.141.0 urllib3-1.26.3
webdriverをインストールする
ブラウザを操作するには、各ブラウザに合わせてドライバーをインストールする必要があります。(今回はChromeDriver)
ダウンロードするバージョンは、ブラウザのバージョン上2桁と合致するものを選びます。
ダウンロードサイト:https://sites.google.com/a/chromium.org/chromedriver/downloads
ChromeDriver:89.0.4389.23
「chromedriver_mac64.zip」をクリックして解凍したら準備完了です。
「"chromedriver"は開発元を検証できないため開けません。」と表示される場合
システム環境設定>セキュリティとプライバシーで「このまま許可」を選択すればOK
grepコマンド-特定の文字を含む行を抽出する
grepコマンドとは
ファイルの中で、指定した文字列が含まれている行を表示するコマンド。
例)projectディレクトリ配下で「customer」という文字を含むファイルを抽出する
$ grep customer project/*
実行結果をファイルに出力する
$ grep customer project/* > file1
便利なオプション
-n:検索結果に行番号を表示する
$ grep -n customer project/*
-r:ディレクトリ内も検索対象とする
$ grep -r customer project/*
-h:検索結果にファイル名を表示しない
$ grep -h customer project/*
-C:検索結果にファイル名を表示しない
#前後に1行ずつ表示する $ grep -C 1 customer project/*
参考サイト
PHPのboolean型の値をJavaScriptの変数として定義する
やりたいこと
PHPのフラグ変数とJavaScriptのフラグ変数を連動させたい。
間違っている書き方
<script>
let test_flg = <?php echo $test_flg; ?>;
</script>
この場合、コンソールにsyntaxエラーが出てしまいました。
Uncaught SyntaxError: Unexpected token ';'
解決方法
var_export関数を使う。
<script>
let test_flg = <?php echo var_export($test_flg); ?>;
</script>
参考サイト
gitでリモートブランチをローカルにcheckoutする
#git checkout -b ローカルブランチ名 origin/リモートブランチ名 $ git checkout -b develop origin/develop
git cherry-pickコマンド
cherry-pickコマンドとは
他のブランチの特定コミットを、反映させることができるコマンド。
使用方法
例:masterブランチのコミットをfeatureブランチにcherry-pickする
$ git checkout master $git log commit ce63lkjokh123ilkkjlll31a098098sdkje18f04d97656 コメント修正 commit 8fb4b713eb6ec4lkjlkj2o3i45oijfiodijs32b8c32eda パラメータ付与 $git checkout feature $git cherry-pick 8fb4b713eb6ec4lkjlkj2o3i45oijfiodijs32b8c32eda
コンフリクトが起きた場合
コンフリクトを解消後コミットし、再度cherry-pickする。
cherry-pickを中止する
$ git cherry-pick --abort