how to locally develop angular cli builder












0















I have 2 folders on my machine, one Angular CLI project and one typescript project where I'm developing builders for the Angular CLI architects This is a mono repo and the builders are internal use only that I never plan on publishing. I have tried referencing the builders 4 diffrent ways:



relative:



/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "relative/path/to/my-builders:my-browser"
}
}
}
}
}


install local module (file:):



/* package.json */
{
"devDependencies": {
"my-builders": "file:relative/path/to/my-builders"
}
}

/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "my-builders:my-browser"
}
}
}
}
}


npm link (the "right" way) (not an option see https://github.com/angular/angular-cli/issues/13055#issuecomment-442815952)



run npm link in the my-builders folder and then npm link my-builders in the angular cli project folder



/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "my-builders:my-browser"
}
}
}
}
}


npm pack:



run npm pack in the my-builders folder



/* package.json */
{
"devDependencies": {
"my-builders": "file:relative/path/to/my-builders-version.tgz"
}
}

/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "my-builders:my-browser"
}
}
}
}
}


All ways but npm pack produce this misleading error on ng build




Angular Compiler was detected but it was an instance of the wrong class.
This likely means you have several @ngtools/webpack packages installed. You can check this with npm ls @ngtools/webpack, and then remove the extra copies.




output of npm ls @ngtools/webpack



`-- @angular-devkit/build-angular@0.8.3
`-- @ngtools/webpack@6.2.3


Needing to run npm pack for every little change is not reasonable, is there a better way to develop the builder locally? (prefer the builders to be in their own project for separation).



duplication repo https://github.com/gatimus/builder-development



Edit:



I also tried



/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "my-builders:my-browser",
"options": {
"preserveSymlinks": true
}
}
}
}
}
}


and ng build --preserve-symlink, same results.










share|improve this question





























    0















    I have 2 folders on my machine, one Angular CLI project and one typescript project where I'm developing builders for the Angular CLI architects This is a mono repo and the builders are internal use only that I never plan on publishing. I have tried referencing the builders 4 diffrent ways:



    relative:



    /* angular.json */
    {
    "projects": {
    "my-cli-proj": {
    "architect": {
    "build": {
    "builder": "relative/path/to/my-builders:my-browser"
    }
    }
    }
    }
    }


    install local module (file:):



    /* package.json */
    {
    "devDependencies": {
    "my-builders": "file:relative/path/to/my-builders"
    }
    }

    /* angular.json */
    {
    "projects": {
    "my-cli-proj": {
    "architect": {
    "build": {
    "builder": "my-builders:my-browser"
    }
    }
    }
    }
    }


    npm link (the "right" way) (not an option see https://github.com/angular/angular-cli/issues/13055#issuecomment-442815952)



    run npm link in the my-builders folder and then npm link my-builders in the angular cli project folder



    /* angular.json */
    {
    "projects": {
    "my-cli-proj": {
    "architect": {
    "build": {
    "builder": "my-builders:my-browser"
    }
    }
    }
    }
    }


    npm pack:



    run npm pack in the my-builders folder



    /* package.json */
    {
    "devDependencies": {
    "my-builders": "file:relative/path/to/my-builders-version.tgz"
    }
    }

    /* angular.json */
    {
    "projects": {
    "my-cli-proj": {
    "architect": {
    "build": {
    "builder": "my-builders:my-browser"
    }
    }
    }
    }
    }


    All ways but npm pack produce this misleading error on ng build




    Angular Compiler was detected but it was an instance of the wrong class.
    This likely means you have several @ngtools/webpack packages installed. You can check this with npm ls @ngtools/webpack, and then remove the extra copies.




    output of npm ls @ngtools/webpack



    `-- @angular-devkit/build-angular@0.8.3
    `-- @ngtools/webpack@6.2.3


    Needing to run npm pack for every little change is not reasonable, is there a better way to develop the builder locally? (prefer the builders to be in their own project for separation).



    duplication repo https://github.com/gatimus/builder-development



    Edit:



    I also tried



    /* angular.json */
    {
    "projects": {
    "my-cli-proj": {
    "architect": {
    "build": {
    "builder": "my-builders:my-browser",
    "options": {
    "preserveSymlinks": true
    }
    }
    }
    }
    }
    }


    and ng build --preserve-symlink, same results.










    share|improve this question



























      0












      0








      0








      I have 2 folders on my machine, one Angular CLI project and one typescript project where I'm developing builders for the Angular CLI architects This is a mono repo and the builders are internal use only that I never plan on publishing. I have tried referencing the builders 4 diffrent ways:



      relative:



      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "relative/path/to/my-builders:my-browser"
      }
      }
      }
      }
      }


      install local module (file:):



      /* package.json */
      {
      "devDependencies": {
      "my-builders": "file:relative/path/to/my-builders"
      }
      }

      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "my-builders:my-browser"
      }
      }
      }
      }
      }


      npm link (the "right" way) (not an option see https://github.com/angular/angular-cli/issues/13055#issuecomment-442815952)



      run npm link in the my-builders folder and then npm link my-builders in the angular cli project folder



      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "my-builders:my-browser"
      }
      }
      }
      }
      }


      npm pack:



      run npm pack in the my-builders folder



      /* package.json */
      {
      "devDependencies": {
      "my-builders": "file:relative/path/to/my-builders-version.tgz"
      }
      }

      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "my-builders:my-browser"
      }
      }
      }
      }
      }


      All ways but npm pack produce this misleading error on ng build




      Angular Compiler was detected but it was an instance of the wrong class.
      This likely means you have several @ngtools/webpack packages installed. You can check this with npm ls @ngtools/webpack, and then remove the extra copies.




      output of npm ls @ngtools/webpack



      `-- @angular-devkit/build-angular@0.8.3
      `-- @ngtools/webpack@6.2.3


      Needing to run npm pack for every little change is not reasonable, is there a better way to develop the builder locally? (prefer the builders to be in their own project for separation).



      duplication repo https://github.com/gatimus/builder-development



      Edit:



      I also tried



      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "my-builders:my-browser",
      "options": {
      "preserveSymlinks": true
      }
      }
      }
      }
      }
      }


      and ng build --preserve-symlink, same results.










      share|improve this question
















      I have 2 folders on my machine, one Angular CLI project and one typescript project where I'm developing builders for the Angular CLI architects This is a mono repo and the builders are internal use only that I never plan on publishing. I have tried referencing the builders 4 diffrent ways:



      relative:



      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "relative/path/to/my-builders:my-browser"
      }
      }
      }
      }
      }


      install local module (file:):



      /* package.json */
      {
      "devDependencies": {
      "my-builders": "file:relative/path/to/my-builders"
      }
      }

      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "my-builders:my-browser"
      }
      }
      }
      }
      }


      npm link (the "right" way) (not an option see https://github.com/angular/angular-cli/issues/13055#issuecomment-442815952)



      run npm link in the my-builders folder and then npm link my-builders in the angular cli project folder



      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "my-builders:my-browser"
      }
      }
      }
      }
      }


      npm pack:



      run npm pack in the my-builders folder



      /* package.json */
      {
      "devDependencies": {
      "my-builders": "file:relative/path/to/my-builders-version.tgz"
      }
      }

      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "my-builders:my-browser"
      }
      }
      }
      }
      }


      All ways but npm pack produce this misleading error on ng build




      Angular Compiler was detected but it was an instance of the wrong class.
      This likely means you have several @ngtools/webpack packages installed. You can check this with npm ls @ngtools/webpack, and then remove the extra copies.




      output of npm ls @ngtools/webpack



      `-- @angular-devkit/build-angular@0.8.3
      `-- @ngtools/webpack@6.2.3


      Needing to run npm pack for every little change is not reasonable, is there a better way to develop the builder locally? (prefer the builders to be in their own project for separation).



      duplication repo https://github.com/gatimus/builder-development



      Edit:



      I also tried



      /* angular.json */
      {
      "projects": {
      "my-cli-proj": {
      "architect": {
      "build": {
      "builder": "my-builders:my-browser",
      "options": {
      "preserveSymlinks": true
      }
      }
      }
      }
      }
      }


      and ng build --preserve-symlink, same results.







      angular npm angular-cli






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 29 '18 at 16:42







      William Lohan

















      asked Nov 21 '18 at 18:12









      William LohanWilliam Lohan

      1,147729




      1,147729
























          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53418207%2fhow-to-locally-develop-angular-cli-builder%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53418207%2fhow-to-locally-develop-angular-cli-builder%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to change which sound is reproduced for terminal bell?

          Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

          Can I use Tabulator js library in my java Spring + Thymeleaf project?