routing-controllers icon indicating copy to clipboard operation
routing-controllers copied to clipboard

question: Ideal local routing-controllers development setup

Open driescroons opened this issue 2 years ago • 1 comments

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 [email protected] published in store.
  2. In your consuming project, run yalc link [email protected]. 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)

driescroons avatar Mar 21 '22 14:03 driescroons

@driescroons I have made a config in webstorm to build everything and do an npm link automatically.

attilaorosz avatar Mar 27 '22 18:03 attilaorosz

Closing this as stale.

If the issue still persists, you may open a new Q&A in the discussions tab and someone from the community may be able to help.

attilaorosz avatar Dec 21 '22 15:12 attilaorosz

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

github-actions[bot] avatar Jan 21 '23 00:01 github-actions[bot]