[解決済み] Angular 依存タイプで利用可能なモジュールファクトリがありません。ContextElementDependency
質問
実行中
ng build
をAngular 4プロジェクトで実行すると、このエラーが発生します。
14% building modules 40/46 modules 6 active ...es\@angular\http\@angular\http.es5.js
An error occured during the build:
Error: No module factory available for dependency type: ContextElementDependency
at Compilation.addModuleDependencies (D:\dev\workspace\rep\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:213:21)
at Compilation.processModuleDependencies (D:\dev\workspace\rep\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:202:8)
at _this.buildModule.err (D:\dev\workspace\rep\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:350:14)
at building.forEach.cb (D:\dev\workspace\rep\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:147:27)
at Array.forEach (native)
at callback
この問題に関して、github & stackoverflowで多くのQ/Aを読みましたが、どれも私を助けてはくれませんでした。
回答が示唆するように、私はwebpackを削除しましたが、これは助けにはなりませんでした。node_modules を削除し、package.json から webpack を削除し、以下を実行しました。
npm install
それでもダメでした。npmのキャッシュを削除し、package.jsonからwebpackを削除し、以下を実行しました。
npm install
それでも結果は出ません。他の多くの同様の提案も役に立ちませんでした。
package.jsonからwebpackを削除して実行したところ
npm install
と表示されます。
Cannot find module 'webpack/lib/node/NodeTemplatePlugin' Error: Cannot
find module 'webpack/lib/node/NodeTemplatePlugin'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (D:\dev\workspace\rep\node_modules\html-webpack-plugin\lib\compiler.js:11:26)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (D:\dev\workspace\rep\node_modules\html-webpack-plugin\index.js:7:21)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
webpackをpackage.jsonに戻す際、以下のように実行します。
npm install
を実行し、次に
npm list webpack
以下のような結果が得られます。
+-- @angular/[email protected]
| `-- [email protected]
`-- [email protected]
以下はプロジェクトのpackage.jsonです。
{
"name": "somename",
"version": "1.0.0",
"description": "",
"author": "",
"url": "",
"copyright": "somec",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/common": "^4.4.5",
"@angular/compiler": "^4.4.5",
"@angular/core": "^4.4.5",
"@angular/forms": "^4.4.5",
"@angular/http": "^4.4.5",
"@angular/platform-browser": "^4.4.5",
"@angular/platform-browser-dynamic": "^4.4.5",
"@angular/router": "^4.4.5",
"@angular/upgrade": "^4.4.5",
"amazon-cognito-identity-js": "^1.21.0",
"chart.js": "2.7.0",
"core-js": "2.5.1",
"font-awesome": "^4.7.0",
"jquery": "^3.2.1",
"moment": "2.18.1",
"ng2-charts": "1.6.0",
"ngx-bootstrap": "1.9.3",
"raw-loader": "^0.5.1",
"rxjs": "5.4.3",
"simple-line-icons": "^2.4.1",
"ts-helpers": "1.1.2",
"zone.js": "0.8.17"
},
"devDependencies": {
"@angular/cli": "^1.4.7",
"@angular/compiler-cli": "^4.4.5",
"@types/jasmine": "2.6.0",
"@types/jquery": "^3.2.13",
"@types/node": "8.0.28",
"codelyzer": "3.2.0",
"jasmine-core": "2.8.0",
"jasmine-spec-reporter": "4.2.1",
"karma": "1.7.1",
"karma-chrome-launcher": "2.2.0",
"karma-cli": "1.0.1",
"karma-coverage-istanbul-reporter": "1.3.0",
"karma-jasmine": "1.1.0",
"karma-jasmine-html-reporter": "0.2.2",
"node-sass": "^4.5.3",
"postcss-loader": "^2.0.6",
"protractor": "5.1.2",
"sass-loader": "^6.0.6",
"ts-node": "3.3.0",
"tslint": "5.7.0",
"typescript": "2.5.2",
"webpack": "^3.6.0"
},
"engines": {
"node": ">= 6.9.0",
"npm": ">= 3.0.0"
}
}
このレポを他のマシンにクローンして実行すると
npm install
で、次に
ng build
は大丈夫で、ちゃんと動くのですが、私の場合はこのエラーが出ます。私のマシンからレポを完全に削除し、ゼロからクローンを作成して
npm install
と
ng build
が、やはり同じエラーです。
どなたか、この動作の理由と修正方法を教えていただけませんか?
解決方法は?
もし誰かがこの問題に遭遇したときのために、私が行った修正手順を紹介します。
- Package.json: DevDependencies から webpack を削除する。
-
rm -R node_modules
(node_modulesフォルダの削除) -
npm i -g webpack
-
npm i -g webpack-dev-server
-
削除
package-lock.json
(存在する場合) -
npm i
-
npm start
なぜこうなったのか、まだ完全に理解できていません。
関連
-
[解決済み】Angular: オブジェクトをサポートしているdiffが見つからない '[object Object]'
-
[解決済み] テンプレートパースエラーです。'mat-icon' は既知の要素ではありません。
-
[解決済み] angularでpreflightのレスポンスがHTTP okステータスにならない
-
[解決済み] Angular 4: コンポーネントファクトリが見つかりません。@NgModule.entryComponents に追加しましたか?
-
[解決済み] Angular 2のコンポーネントプロパティにデフォルト値を設定する方法は?
-
[解決済み] ionInputとionChangeで有意差あり
-
[解決済み] 安全でない値」の例外を発生させずに <iframe src="..."> を設定するにはどうしたらよいですか?
-
[解決済み] Angular 6 Error trying to diff '[object Object]'. 配列と反復記号のみが許可されます。
-
[解決済み] エラーです。参照または変数に代入できません! Angular 4 [重複]の場合
-
[解決済み] モジュール "@angular-devkit/build-angular" が見つかりませんでした。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「ルーター・アウトレット」は既知の要素ではない
-
[解決済み】angularでpreflightのレスポンスがHTTP okステータスにならない。
-
[解決済み] ngForにフィルターをかけるには?
-
[解決済み] ZoneAwarePromiseとは
-
[解決済み] "rxjs" observable.throw は関数ではありません - Angular4
-
[解決済み] 安全でない値」の例外を発生させずに <iframe src="..."> を設定するにはどうしたらよいですか?
-
[解決済み] Angular 6 Error trying to diff '[object Object]'. 配列と反復記号のみが許可されます。
-
[解決済み] なぜ mat-tables matRowDef は 2 つの変数を含むのですか?
-
[解決済み] Angular2 Selectorが、ネストしたComponentのどの要素にもマッチしない。
-
[解決済み] モジュール 'ngx-cookie-service' が見つかりません。