実現したいこと
$ yarn start
とコマンドを叩くことで、localhost:9000にアクセスでき「/index.htmlです。」と表示させたい
発生している問題・エラーメッセージ
ERROR
1 2ERROR in multi (webpack)-dev-server/client?http://localhost:8080 ./src 3Module not found: Error: Can't resolve './src' in '/Users/shouminotaku' 4 @ multi (webpack)-dev-server/client?http://localhost:8080 ./src main[1]エラーメッセージ
該当のソースコード
package.json
1{ 2 "name": "01", 3 "version": "1.0.0", 4 "main": "index.js", 5 "license": "MIT", 6 "dependencies": { 7 "ejs-compiled-loader": "1.1.0", 8 "html-webpack-plugin": "3.2.0", 9 "webpack": "4.46.0", 10 "webpack-cli": "3.3.12", 11 "webpack-dev-server": "3.10.1" 12 }, 13 "scripts": { 14 "start": "webpack-dev-server --mode development --watch" 15 } 16} 17
試したこと
yarn addでバージョンを指定してNPMパッケージをインストールする
(参考 https://qiita.com/suin/items/6faea73b5b16d31d990a)
yarn add [パッケージ名]@[バージョン指定]
package.json:7
"ejs-compiled-loader": "1.1.0", "html-webpack-plugin": "3.2.0", "webpack": "4.46.0", "webpack-cli": "3.3.12", "webpack-dev-server": "3.10.1"
完了!
yarn startしてみる
$ yarn start yarn run v1.22.19 $ webpack-dev-server --mode development --watch ℹ 「wds」: Project is running at http://localhost:8080/ ℹ 「wds」: webpack output is served from / ℹ 「wds」: Content not from webpack is served from /Users/shouminotaku node:internal/crypto/hash:71 this[kHandle] = new _Hash(algorithm, xofLen); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:140:10) at module.exports (/Users/shouminotaku/node_modules/webpack/lib/util/createHash.js:135:53) at NormalModule._initBuildHash (/Users/shouminotaku/node_modules/webpack/lib/NormalModule.js:417:16) at handleParseError (/Users/shouminotaku/node_modules/webpack/lib/NormalModule.js:471:10) at /Users/shouminotaku/node_modules/webpack/lib/NormalModule.js:503:5 at /Users/shouminotaku/node_modules/webpack/lib/NormalModule.js:358:12 at /Users/shouminotaku/node_modules/loader-runner/lib/LoaderRunner.js:373:3 at iterateNormalLoaders (/Users/shouminotaku/node_modules/loader-runner/lib/LoaderRunner.js:214:10) at Array.<anonymous> (/Users/shouminotaku/node_modules/loader-runner/lib/LoaderRunner.js:205:4) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' } Node.js v19.5.0 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
コマンドの実行に失敗し、終了コード 1 が表示された
ということでリンク先を見てみる
https://classic.yarnpkg.com/en/docs/cli/run
よくわからないが、
$ yarn run ~
.xmlで指定されたスクリプトの〜が実行されるようだ
とりあえず実行時に
$yarn run
実行時にスクリプトを表示させてみる
$ yarn run yarn run v1.22.19 info Commands available from binary scripts: acorn, ansi-html, atob, ew _Hash(algorithm, xofLen); ^ ・ ・ ・ ・ Node.js v19.5.0 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
とりあえずstartは使用できるようだ。
もしかするとエラーの原因は、node.jsのバージョンが新しすぎることかもしれない。
https://ki-hi-ro.com/what-is-nuxt-js/
参考にするも、実際にどうしたらいいのかわからない。
エラーを突っ込んでそのまま検索してみる
Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:140:10) at module.exports . .
Node.js v16にダウングレードしてOpenSSL プロバイダーを有効にすることで問題が解決するようだ。
https://gyazo.com/e0679ef39fe32007058cfa6f3e824264
OpenSSL プロバイダーを有効にする
$ export NODE_OPTIONS=--openssl-legacy-provider
再び
$ yarn start node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
リトライ!
$ yarn start yarn run v1.22.19 $ webpack-dev-server --mode development --watch ℹ 「wds」: Project is running at http://localhost:8080/ ℹ 「wds」: webpack output is served from / ℹ 「wds」: Content not from webpack is served from /Users/shouminotaku ✖ 「wdm」: Hash: dac425af1070646b7cc5 . . . ERROR in Entry module not found: Error: Can't resolve './src' in '/Users/shouminotaku' ERROR in multi (webpack)-dev-server/client?http://localhost:8080 ./src Module not found: Error: Can't resolve './src' in '/Users/shouminotaku' @ multi (webpack)-dev-server/client?http://localhost:8080 ./src main[1]
同じようなエラーログがないかググってみる
https://teratail.com/questions/220103
$yarn run
ではなく試しに
$npm run build
をコマンドて打つ
・・しかし
ERROR in Entry module not found: Error: Can't resolve './src' in '/Users/shouminotaku' ERROR in multi (webpack)-dev-server/client?http://localhost:8080 ./src Module not found: Error: Can't resolve './src' in '/Users/shouminotaku' @ multi (webpack)-dev-server/client?http://localhost:8080 ./src main[1]
↓日本語にしてみる
ERROR in Entry module not found: Error: /Users/shouminotaku' 内の './src' を解決できません。 ERROR in multi (webpack)-dev-server/client?http://localhost:8080 ./src モジュールが見つかりません。Error: /Users/shouminotaku' にある './src' を解決できません。
/Users/shouminotaku' 内に'./src'フォルダはあるのにどういうことだろうか
https://gyazo.com/d21e4755aaa8c42abcea6d1c3029e5a8
https://stackoverflow.com/questions/69394632/webpack-build-failing-with-err-ossl-evp-unsupported
どうやらNode.js17以降のバージョンではOpenSSLの関係でWebpack 4.xは動作できなくなっているようだ。
NODE_OPTIONS=--openssl-legacy-provider
Node.js 18.14.0でやってみることにしよう
https://nodejs.org/ja/download/releases/
Node.js 18.14.0 をダウンロードしてみる
This package has installed: • Node.js v18.14.0 to /usr/local/bin/node • npm v9.3.1 to /usr/local/bin/npm Make sure that /usr/local/bin is in your $PATH.
上記記事の手順を参考にやってみました。
$ yarn start yarn run v1.22.19 $ webpack-dev-server --mode development --watch ℹ 「wds」: Project is running at http://localhost:8080/ ℹ 「wds」: webpack output is served from / ℹ 「wds」: Content not from webpack is served from /Users/shouminotaku node:internal/crypto/hash:71 this[kHandle] = new _Hash(algorithm, xofLen); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (/Users/shouminotaku/node_modules/webpack/lib/util/createHash.js:135:53) at NormalModule._initBuildHash (/Users/shouminotaku/node_modules/webpack/lib/NormalModule.js:417:16) at handleParseError (/Users/shouminotaku/node_modules/webpack/lib/NormalModule.js:471:10) at /Users/shouminotaku/node_modules/webpack/lib/NormalModule.js:503:5 at /Users/shouminotaku/node_modules/webpack/lib/NormalModule.js:358:12 at /Users/shouminotaku/node_modules/loader-runner/lib/LoaderRunner.js:373:3 at iterateNormalLoaders (/Users/shouminotaku/node_modules/loader-runner/lib/LoaderRunner.js:214:10) at Array.<anonymous> (/Users/shouminotaku/node_modules/loader-runner/lib/LoaderRunner.js:205:4) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' } Node.js v18.14.0 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
エラーは変わらず、nodeのダウングレードをしてみる
export NODE_OPTIONS=--openssl-legacy-provider
↑こちらをターミナルに打ってみるもエラーは変わらず
Node.js 18.14.0をNode.js v16にダウングレードしてみる
$ yarn start yarn run v1.22.19 $ webpack-dev-server --mode development --watch ℹ 「wds」: Project is running at http://localhost:8080/ ℹ 「wds」: webpack output is served from / ℹ 「wds」: Content not from webpack is served from /Users/shouminotaku ✖ 「wdm」: Hash: 7a5d982e4ec988dd06b4 ・ ERROR in Entry module not found: Error: Can't resolve './src' in '/Users/shouminotaku' ERROR in multi (webpack)-dev-server/client?http://localhost:8080 ./src Module not found: Error: Can't resolve './src' in '/Users/shouminotaku' @ multi (webpack)-dev-server/client?http://localhost:8080 ./src main[1]
エラーの内容がかわった(元に戻った)
https://speakerdeck.com/tomof/webpackgahe-gu-bi-yao-de-he-gu-fen-kariduraifalseka?slide=36
webpackのentryを指定してみる
webpack.config.js
{ "name": "01", "version": "1.0.0", "main": "./src/index.js",//修正箇所 "license": "MIT", "dependencies": { "ejs-compiled-loader": "1.1.0", "html-webpack-plugin": "3.2.0", "webpack": "4.46.0", "webpack-cli": "3.3.12", "webpack-dev-server": "3.10.1" }, "scripts": { "start": "react-scripts start" } }
node_modulesを消してyarn.lockを削除して
$yarn startするも
エラーは変わらず・・
![guest](/img/icon/icnUserSample.jpg)