Skip to content

Ability to configure aliases in .angular-cli.json #6282

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

Closed
1 of 2 tasks
dave11mj opened this issue May 11, 2017 · 5 comments
Closed
1 of 2 tasks

Ability to configure aliases in .angular-cli.json #6282

dave11mj opened this issue May 11, 2017 · 5 comments

Comments

@dave11mj
Copy link
Contributor

dave11mj commented May 11, 2017

Bug Report or Feature Request (mark with an x)

  • bug report -> please search issues before submitting
  • feature request

Desired functionality.

Ability to configure Webpack Aliases in .angular-cli.json.

Currently the only way I know of to import components, services, etc, from one to another using the cli's webpack configurations is using relative paths for everything. Meaning often imports can have a good number of ../../../ this makes it difficult to refactor and maintain a growing application.

Mention any other details that might be useful.

I understand ng eject is always an option, but that would also mean dropping out of the great support and configurations provided by the cli.

@clydin
Copy link
Member

clydin commented May 11, 2017

Typescript provides extensive path mapping support. Scroll down to the path mapping section here: https://www.typescriptlang.org/docs/handbook/module-resolution.html

@dave11mj
Copy link
Contributor Author

@clydin Thanks for the feedback !! I didn't know tsconfig.json had such power !! ^^

@WoMayr
Copy link

WoMayr commented Aug 3, 2017

I tried to use this method to import the requirejs compatible version of fabric.js but then the typings of @types/fabric are not working anymore. Neither the compiler does typechecks nor does VSCode provide any information about the types.

My tsconfig.json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "paths": {
      "fabric": [
        "../node_modules/fabric/dist/fabric.require.js"
      ]
    },
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ]
  }
}

Usage inside app.component.ts:

import { Component, OnInit, ViewChild, ElementRef } from "@angular/core";

import * as fabric from "fabric";

@Component({
  selector: "app-root",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.scss"]
})
export class AppComponent implements OnInit {

  @ViewChild("canvas")
  public viewCanvas: ElementRef;

  private canvas: fabric.Canvas;

  public exportedSvg: string;

  public ngOnInit(): void {
    this.canvas = new fabric.Canvas(this.viewCanvas.nativeElement);

    // create a rectangle object
    const rect = new fabric.Rect({
      left: 100,
      top: 100,
      fill: "red",
      width: 20,
      height: 20,
      lockUniScaling: true
    });

    // "add" rectangle onto canvas
    this.canvas.add(rect);
  }

  public export(): void {
    this.exportedSvg = this.canvas.toSVG();
  }
}

Typescript should complain about this.canvas.toSVG() as it is wrongly defined inside the typings, but it doesn't.

I have looked around the internet searching for any solutions regarding this problem but I couldn't find any.

@nelisbijl
Copy link

Typescript provides extensive path mapping support. Scroll down to the path mapping section here: https://www.typescriptlang.org/docs/handbook/module-resolution.html

Sure but SCSS is no TypeScript

@angular-automatic-lock-bot
Copy link

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.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Sep 8, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants