-
Notifications
You must be signed in to change notification settings - Fork 12k
Lazy loading module broken with " No module factory available for dependency type: ContextElementDependency" #6417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
More observations:
In
Commenting-out gives Commenting-in causes the above error. ContentModule does work in a "fresh" app. Here are dependencies in {
...
"devDependencies": {
"@angular/cli": "^1.1.0-rc.0",
"@angular/compiler-cli": "^4.1.3",
"@angular/tsc-wrapped": "^4.1.3",
"@types/jasmine": "^2.5.47",
"@types/node": "^7.0.18",
"angular2-template-loader": "^0.6.2",
"awesome-typescript-loader": "^3.1.3",
"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"browser-sync": "^2.18.8",
"chalk": "^1.1.3",
"codelyzer": "^3.0.1",
"conventional-changelog": "^1.1.3",
"core-js": "^2.4.1",
"cpx": "^1.5.0",
"css-loader": "^0.28.1",
"del": "^2.2.2",
"dgeni": "^0.4.7",
"dgeni-packages": "^0.19.0",
"gray-matter": "^2.1.1",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.1",
"gulp-csso": "^3.0.0",
"gulp-if": "^2.0.2",
"gulp-imagemin": "^3.2.0",
"gulp-inline-ng2-template": "^4.0.0",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.1.0",
"gulp-sourcemaps": "^2.6.0",
"gulp-svgmin": "^1.2.3",
"gulp-svgstore": "^6.1.0",
"gulp-util": "^3.0.8",
"handlebars": "^4.0.8",
"i": "^0.3.5",
"istanbul-combine": "^0.3.0",
"istanbul-instrumenter-loader": "^2.0.0",
"jasmine-core": "^2.6.1",
"jasmine-spec-reporter": "^4.1.0",
"js-beautify": "^1.6.12",
"js-yaml": "^3.8.3",
"json-loader": "^0.5.4",
"karma": "^1.6.0",
"karma-chrome-launcher": "^2.1.0",
"karma-cli": "^1.0.1",
"karma-coverage": "^1.1.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "^1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-mocha-reporter": "^2.2.3",
"karma-phantomjs-launcher": "^1.0.4",
"karma-remap-coverage": "^0.1.4",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^2.0.3",
"markdown-it": "^8.3.1",
"merge-stream": "^1.0.1",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
"mz": "^2.6.0",
"node-sass": "^4.5.3",
"protractor": "^5.1.1",
"raw-loader": "^0.5.1",
"rho": "^0.4.1",
"rimraf": "^2.6.1",
"rollup": "^0.41.6",
"rollup-plugin-angular-inline": "^1.0.0",
"rollup-plugin-node-resolve": "^3.0.0",
"run-sequence": "^1.2.2",
"sass-loader": "^6.0.5",
"shelljs": "^0.7.7",
"sorcery": "^0.10.0",
"sort-object": "^3.0.2",
"source-map-loader": "^0.2.1",
"standard-version": "^4.0.0",
"to-string-loader": "^1.1.5",
"ts-api-guardian": "^0.2.1",
"ts-helpers": "^1.1.2",
"ts-node": "^3.0.4",
"tslint": "^5.2.0",
"typescript": "^2.3.2",
"uglify-js": "^3.0.8",
"vinyl-fs": "^2.4.4",
"webpack": "^2.5.0",
"webpack-dev-middleware": "^1.10.2",
"webpack-dev-server": "^2.4.5",
"webpack-md5-hash": "^0.0.5",
"webpack-merge": "^4.1.0"
},
"dependencies": {
"@angular/common": "^4.1.3",
"@angular/compiler": "^4.1.3",
"@angular/core": "^4.1.3",
"@angular/forms": "^4.1.3",
"@angular/http": "^4.1.3",
"@angular/platform-browser": "^4.1.3",
"@angular/platform-browser-dynamic": "^4.1.3",
"@angular/router": "^4.1.3",
"@nice/nice-fluorine-icons": "^2.2.16",
"angular2-markdown": "^1.6.0",
"bootstrap": "4.0.0-alpha.6",
"marked-extras": "^0.2.4",
"rxjs": "^5.0.1",
"zone.js": "^0.8.4"
},
"peerDependencies": {
"@angular/common": "^4.1.3",
"@angular/compiler": "^4.1.3",
"@angular/core": "^4.1.3",
"@angular/forms": "^4.1.3",
"@angular/http": "^4.1.3",
"@angular/platform-browser": "^4.1.3",
"@angular/platform-browser-dynamic": "^4.1.3",
"@angular/router": "^4.1.3",
"@nice/nice-fluorine-icons": "^2.2.16",
"bootstrap": "4.0.0-alpha.6",
"rxjs": "^5.0.1",
"zone.js": "^0.8.4"
},
...
} {
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "foobar"
},
"apps": [
{
"root": "guide",
"outDir": "dist/guide",
"assets": [
"assets",
"favicon.ico",
"**/*.md",
{
"input": "../node_modules/@foo/bar-icons/dist/solution-with-combined-SVG",
"glob": "**/*.svg",
"output": "assets/icons"
},
{
"input": "../node_modules/@foo/bar-icons/dist/vectors",
"glob": "**/*.svg",
"output": "assets/icons/icon_fluorine"
}
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "ud",
"styles": [
"styles.scss",
"styles.css",
"styles.docs-api.scss"
],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"e2e": {
"protractor": {
"config": "./e2e/protractor.conf.js"
}
},
"lint": [
{
"project": "demo/tsconfig.app.json",
"tslintConfig": "demo/tslint.json"
},
{
"project": "demo/tsconfig.spec.json",
"tslintConfig": "demo/tslint.json"
},
{
"project": "e2e/tsconfig.e2e.json",
"tslintConfig": "demo/tslint.json"
}
],
"test": {
"karma": {
"config": "demo/karma.conf.js"
}
},
"defaults": {
"styleExt": "scss",
"component": {}
}
} |
Heya, can you put up a simple repro that shows this happening? |
The most likely cause is a webpack version mismatch. Version 1.1 of the CLI uses 2.4.x. |
@clydin yes, it's the version mismatch. @filipesilva here's the repro: dherges/ng-cli-lazy-loading-broken-6417. The change in package.json dependencies breaks the build. |
@dherges I'm not sure there isn't anything we can do here, it seems like having two versions of |
Hey guys. Just ran into this problem myself. @dherges and @filipesilva I was able to fix the problem by installing Webpack 2.6.0.
Hope this helps. |
@filipesilva I've got no idea, tbh. Let's just keep it documented. If version bumping solves it, then I guess that's what most people should do and will do. Is it something the webpack team is aware of? Does it help them? Looks like there's no related issue over at their GitHub project. |
I don't know if they are aware but tbh I wouldn't expect multiple webpack deps to play well with each other. |
fixed : |
I uninstalled webpack 2.6.0 and installed 2.4.1. Still crashing in the same way. |
and ng serve works fine after I I changed the lazy loaded module to eager loaded. |
@alexfung888 Have you tried to use the master branch of the CLI via NPM linking? Changes have been made since the latest official release. |
@jwuliger No I haven't. How do I do that? I only |
@alexfung888 Try this from the readme: https://github.com/angular/angular-cli#development-hints-for-working-on-angular-cli |
@jwuliger Thanks for the reference, but how do I revert the global and local npm link after I am done? How do I get back to the normal released version? Do I just manually delete the symbolic links created, and re-do the regular npm install? |
@alexfung888 The team just recently added a new command flag that I find very welcome. What I do is add the flag in my
So for example - I currently have v1.2.0-beta.0 of the CLI installed globally. Then I git clone master and do an |
You are right. It no longer crashes with lazy loading modules after I installed the master branch of angular/cli (3983565). |
@alexfung888 Great! I am glad its working for you. I know its a work-around but at least we know its not permanent. |
What is weird is that after trying the master branch, I check out 120beta0, it didn't crash, and then 110release, it didn't crash either! |
Was experiencing this issue on travis where the yarn version is 0.17.x. I updated the travis config to install and use 0.24.6. Builds are working fine now. |
Closing as this seems to be caused by trying to install a different version of |
This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
This keeps being a problem so I took another stab at preventing this class of error altogether. #11152 will hopefully make it a non-issue. |
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix #6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
RESUELTO Lo resolví actualizando npm |
My solution is
|
The problem seems to be a mix of wrong webpack dependency and/or duplicated webpack (implicit dep). PS: Also done a |
I just ran into this while upgrading angular-cli to latest version:
I read the post about multiple versions of webpack but removing webpack from package.json gives on doing ng build I get the following .. it's catch 22
finally I manually installed webpack@4.9.2 as specified by @angular-devkit/build-angular~0.7.1 , and then ng serve can run, but the first problem persists |
Just upgraded to latest Angular 6.1 and angular-cli 6.1.1 and I get this error
|
This one is closed, maybe you could open a new issue? |
I'm getting this error using What do I need to do to use both of them together? |
Eventually I figured it out, but it's been 11 days ago, @victorjatoba here is my current package.json I'm sure there are packages here you don't use, but this is the combination that I'm working with and it builds fine
When I run ng version I get this:
|
If removing webpack from your package.json doesn't work for you: In my case I just needed to update the following dependencies : "@angular-devkit/core", "@angular-devkit/build-angular", and "@angular-devkit/schematics" to the following version : "0.8.1". This way "@angular-devkit/build-angular" had the same version than the webpack specified in my package.json (4.18.0). This means that if your run |
For Ionic users this link will help https://noellh.com/blog/ionic-4-cannot-find-webpack/ Also ``npm ls @ngtools/webpack' `lets you find all versions of webpack installed |
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
…ndency class This should allow multiple webpack versions in the workspace dependencies with no weird errors. Fix angular#6417 for good.
Bug Report or Feature Request (mark with an
x
)Versions.
Repro steps.
Include a lazy loaded module in
AppRoutingModule
.This doesn't happen with a fresh
ng new <project>
set-up. When adding"webpack": "^2.5.0"
dependency, this breaks the build.A repro can be found here: dherges/ng-cli-lazy-loading-broken-6417. The change in package.json dependencies breaks the build.
The log given by the failure.
Desired functionality.
Lazy loading:
Mention any other details that might be useful.
There are other related issues from the past #3793, #4246
The text was updated successfully, but these errors were encountered: