Repository navigation
CLI force me to have bootstrapModule in my main module #6466
Description
Bug Report or Feature Request (mark with an x)
- [x] bug report
- [ ] feature request
Versions.
@angular/cli: 1.0.1
node: 7.10.0
os: darwin x64
@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
@angular/cli: 1.0.1
@angular/compiler-cli: 4.1.3
Repro steps.
The log given by the failure.
- Setup an application on
.angular-cli.json - Remove
platformBrowserDynamic().bootstrapModule(DemoModule)from the main project - Try to run the
test taskfor that application - It will show
Tried to find bootstrap code, but could not. Specify either statically analyzable bootstrap code or pass in an entryModule to the plugins options.
$ ng test --app boa
Tried to find bootstrap code, but could not. Specify either statically analyzable bootstrap code or pass in an entryModule to the plugins options.
Error: Tried to find bootstrap code, but could not. Specify either statically analyzable bootstrap code or pass in an entryModule to the plugins options.
at Object.resolveEntryModuleFromMain (/Users/ubi/Sites/open_source/boa/node_modules/@ngtools/webpack/src/entry_resolver.js:118:15)
at AotPlugin._setupOptions (/Users/ubi/Sites/open_source/boa/node_modules/@ngtools/webpack/src/plugin.js:143:50)
at new AotPlugin (/Users/ubi/Sites/open_source/boa/node_modules/@ngtools/webpack/src/plugin.js:26:14)
at _createAotPlugin (/Users/ubi/Sites/open_source/boa/node_modules/@angular/cli/models/webpack-configs/typescript.js:55:12)
at Object.exports.getNonAotTestConfig (/Users/ubi/Sites/open_source/boa/node_modules/@angular/cli/models/webpack-configs/typescript.js:103:19)
at WebpackTestConfig.buildConfig (/Users/ubi/Sites/open_source/boa/node_modules/@angular/cli/models/webpack-test-config.js:17:31)
at init (/Users/ubi/Sites/open_source/boa/node_modules/@angular/cli/plugins/karma.js:79:94)
at Array.invoke (/Users/ubi/Sites/open_source/boa/node_modules/di/lib/injector.js:75:15)
at Injector.get (/Users/ubi/Sites/open_source/boa/node_modules/di/lib/injector.js:48:43)
at /Users/ubi/Sites/open_source/boa/node_modules/karma/lib/server.js:143:20
at Array.forEach (native)
at Server._start (/Users/ubi/Sites/open_source/boa/node_modules/karma/lib/server.js:142:21)
at Injector.invoke (/Users/ubi/Sites/open_source/boa/node_modules/di/lib/injector.js:75:15)
at Server.start (/Users/ubi/Sites/open_source/boa/node_modules/karma/lib/server.js:103:18)
at Promise (/Users/ubi/Sites/open_source/boa/node_modules/@angular/cli/tasks/test.js:35:25)
at Class.run (/Users/ubi/Sites/open_source/boa/node_modules/@angular/cli/tasks/test.js:15:16)
error Command failed with exit code 1.
Desired functionality.
The test should run without force me to have a bootstrapped application.
Mention any other details that might be useful.
Repo: https://github.com/straw-hat-llc/boa/tree/develop
This project is trying to create a UI framework for be used cross multiple applications. Because of that, I actually don't have an application (unless I am misunderstanding Angular), I actually have a bunch of code that compose a UI framework.
I am using boa app https://github.com/straw-hat-llc/boa/blob/develop/.angular-cli.json#L8 for setup the testing piece of the framework, just the spec testing because the e2e will be excluded, but because my main file do not contains a bootstrapModule the task is failing.
This should let me run the testing, base on this use case, I do not need a real application to be able to run. I am trying to test an framework code, no a real application (from the point of view that this is no meant to be deploy by it's own)
Activity
yordis commentedon May 25, 2017
demo apphttps://github.com/straw-hat-llc/boa/blob/develop/.angular-cli.json#L20 is used for development, where you could add your use cases of the component and you can test it out visually. Also I will addwebsite appwhich it will be used forgithub pages websitedherges commentedon May 29, 2017
Can you try setting
entryModulefor theAotPluginfrom@ngtools/webpack?The error message tells half of the story:
either statically analyzable bootstrap code or pass in an entryModule to the plugins options. You will need tong ejectyour webpack config, and then edit the webpack plugin options. I think it is documented behaviour actually.yordis commentedon May 29, 2017
@dherges what do you mean by webpack config? I do not have any Webpack file at all. I am using
ng-cligenerated code for this. I only have the.angular-cli.jsonconfig so far https://github.com/straw-hat-llc/boa/blob/develop/.angular-cli.jsonclydin commentedon May 29, 2017
The CLI is currently only intended for the creation of web applications. However, library creation support is planned for a future release.
yordis commentedon May 29, 2017
@clydin is there any issue related to that? I want to follow the thread and see if I can help somehow the process
dherges commentedon May 30, 2017
@yordis there are two independent things here:
ngcli: it uses webpack under the hood. you canng ejectits config.yordis commentedon May 30, 2017
@dherges so is my concern a valid issue/concern? I don't mind to wait if what @clydin said it's true.
I see many use cases where I have some "app" that are just framework/library code but I want to run some tasks from the CLI independently.
hansl commentedon May 30, 2017
@yordis Hi. We do not support libraries at the moment. What you're seeing is failure from our code to find the entry
NgModule, and if it cannot find it it will fail. We need that information for knowing where to start looking for routes. If you only want to run tests, you should be able to setup karma yourself and use the karma CLI.For more information regarding libraries, see my comment here: #1692 (comment)
I'm going to close this as Working-As-Intended.
angular-automatic-lock-bot commentedon Sep 7, 2019
This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.
Read more about our automatic conversation locking policy.
This action has been performed automatically by a bot.