Skip to content

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

Closed

Description

@dave11mj

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.

Activity

  1. clydin commented on May 11, 2017

    @clydin
    Member

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

  2. dave11mj commented on May 12, 2017

    @dave11mj
    ContributorAuthor

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

  3. WoMayr commented on Aug 3, 2017

    @WoMayr

    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.

  4. nelisbijl commented on Nov 29, 2018

    @nelisbijl

    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

  5. angular-automatic-lock-bot commented on Sep 8, 2019

    @angular-automatic-lock-bot

    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.

  6. locked and limited conversation to collaborators on Sep 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions