Skip to content

question: Ideal local routing-controllers development setup #861

Description

@driescroons

When I was creating my (use)Interceptor priorty PR it took me some time to get a working setup and I was wondering if there were some docs on how to ideally setup a local dev enviroment to test routing-controllers (against already existing projects).

A lot of the steps below were added because the (pre)publishing happens in the github workflow. I was curious if there is a better, easier alternative to test out local routing-controllers changes against already existing projects?

I've currently setup the project to support local development and use routing-controllers as a local (symlinked) package like so:

  1. Install yalc globally
  2. Install fs-extra as a devDependency and create a file copyFiles.js in the root of routing-controllers:
const fse = require('fs-extra');

const buildFolders = ['/cjs', '/esm2015', '/types'];

buildFolders.forEach(folder => {
  fse.copySync(`./build${folder}`, `.${folder}`, { overwrite: true }, function (err) {
    if (err) {
      console.error(err);
    } else {
      console.log('success!');
    }
  });
});
  1. Add the following lines to .gitignore in routing-controllers:
/cjs
/esm2015
/types
  1. Create a .prettierignore file and add the following in routing-controllers:
build
types
cjs
esm2015
  1. Create a .yalcignore file in routing-controllers
/docs
/lang
/node_modules
/sample
/src
/test
/.github
/build

!cjs
!esm2015
!types
  1. Add the following script to your package.json in routing-controllers:
 "preyalcpublish": "npm run build && npm run build:es2015 && npm run build:types && node copyFiles"
  1. Run yalc publish in this (or forked) repository to publish to the local package store. This will show a message that the package has been published. In my case routing-controllers@0.9.0 published in store.
  2. In your consuming project, run yalc link routing-controllers@0.9.0. This will add a folder .yalc folder in your project and symlink it to therouting-controllers in your node_modules. (Make sure to check your version specified in package.json and not straight up copy paste the version I'm using)
  3. Whenever you change something in the routing-controllers package, publish again and run yalc update in the consuming package.

For the people using this setup; please do not add these files to version control (maybe even add them to .gitignore)

Activity

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

    type: questionQuestions about the usage of the library.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions