Angular no module factory disponible pour le type de dépendance: Contexttelementdependency

Exécution ng build sur mon Angulaire 4 projet donne cette erreur :

     14% building modules 40/46 modules 6 active ...es@angularhttp@angularhttp.es5.js
An error occured during the build:
Error: No module factory available for dependency type: ContextElementDependency
    at Compilation.addModuleDependencies (D:devworkspacerepnode_modules@angularclinode_moduleswebpacklibCompilation.js:213:21)
    at Compilation.processModuleDependencies (D:devworkspacerepnode_modules@angularclinode_moduleswebpacklibCompilation.js:202:8)
    at _this.buildModule.err (D:devworkspacerepnode_modules@angularclinode_moduleswebpacklibCompilation.js:350:14)
    at building.forEach.cb (D:devworkspacerepnode_modules@angularclinode_moduleswebpacklibCompilation.js:147:27)
    at Array.forEach (native)
    at callback 

j'ai lu beaucoup de Questions/Réponses sur github & stackoverflow sur cette question, mais aucune d'entre elles ne m'a aidé.

comme le suggéraient les réponses, j'ai retiré webpack mais cela n'a pas aidé. Supprimé node_modules,supprimé webpack du paquet.json, run npm install, toujours pas aidé. Nettoyage du cache de npm, suppression de webpack du paquet.json, run npm install, toujours pas de résultat. Et beaucoup d'autres suggestions similaires n'ont pas aider.

quand je retire webpack du paquet.json et run npm install je code suivant:

 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:devworkspacerepnode_moduleshtml-webpack-pluginlibcompiler.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:devworkspacerepnode_moduleshtml-webpack-pluginindex.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)

Lors du retour de webpack de package.json , run npm install et puis exécutez npm list webpack j'ai le résultat suivant:

+-- @angular/cli@1.4.7
| `-- webpack@3.6.0
`-- webpack@3.8.1

voici le paquet.json du projet:

{
  "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"
  }
}

quand je clone ce repo sur une autre machine, exécuter npm install et ng build c'est bon, ça marche bien, mais sur le mien ça donne cette erreur. J'ai essayé de supprimer complètement le repo de ma machine, le clonage à partir de zéro et en cours d'exécution npm install et ng build, toujours la même erreur.

quelqu'un Peut s'il vous plaît dites quelle peut être la raison de ce problème et comment le résoudre ?

18
demandé sur komron 2017-10-18 14:56:45

2 réponses

mesures que j'ai prises pour corriger ce problème au cas où quelqu'un le rencontrerait:

  1. paquet.json: supprimer webpack de DevDependencies
  2. rm-R node_modules (retirer le dossier node_modules)
  3. npm i-g webpack
  4. npm i-g webpack-dev-server
  5. supprimer le package de verrouillage.json (si elle existe)
  6. npm i
  7. npm start

je ne comprends pas complètement les raisons pour lesquelles cela s'est produit

33
répondu komron 2017-10-22 17:28:31

npm ls webpack

Si vous voyez deux versions de webpack (sous @angular / cli et la racine node_modules), alors c'est le problème. Supprimer/Renommer le webpack sous @angular/cli et .bin dossier @angular/cli.

Problème résolu pour moi

5
répondu phacic 2017-10-25 18:20:21