Closed
Description
See also #10172
The generated path aliases seem not right.
Versions
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 6.0.0
Node: 10.0.0
OS: linux x64
Angular: 6.0.0
... animations, cli, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
------------------------------------------------------------
@angular-devkit/architect 0.6.0
@angular-devkit/build-angular 0.6.0
@angular-devkit/build-ng-packagr 0.6.0
@angular-devkit/build-optimizer 0.6.0
@angular-devkit/core 0.6.0
@angular-devkit/schematics 0.6.0
@ngtools/json-schema 1.1.0
@ngtools/webpack 6.0.0
@schematics/angular 0.6.0
@schematics/update 0.6.0
ng-packagr 3.0.0-rc.2
rxjs 6.1.0
typescript 2.7.2
webpack 4.6.0
Repro steps
ng new my-project
cd my-project
ng generate library foo
ng generate library @msterba/bar
ng build foo
ng build @msterba/bar
Now try to import BarModule
into the app.
Observed behavior
The libraries are compiled correctly but the resulting directory structure in dist
is not reflected by the paths
definitions in tsconfig.json
:
directory structure:
dist
+- foo
+- @msterba
+- bar
tsconfig.json:
"paths": {
"foo": [
"dist/foo"
],
"bar": [
"dist/bar"
]
}
BarModule
cannot be imported.
// src/app/app.module.ts:
import { FooModule } from 'foo'; // ok
import { BarModule } from '@msterba/bar'; // [ts] Cannot find module '@msterba/bar'.
// console:
$ ng build
ERROR in src/app/app.module.ts(8,27): error TS2307: Cannot find module '@msterba/bar'.
Desired behavior
Add scopes to the paths
definitions.
"paths": {
"foo": [
"dist/foo"
],
"@msterba/bar": [
"dist/@msterba/bar"
]
}