routing-controllers
routing-controllers copied to clipboard
question: Ideal local routing-controllers development setup
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:
- Install yalc globally
- Install
fs-extra
as a devDependency and create a filecopyFiles.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!');
}
});
});
- Add the following lines to .gitignore in routing-controllers:
/cjs
/esm2015
/types
- Create a .prettierignore file and add the following in routing-controllers:
build
types
cjs
esm2015
- Create a .yalcignore file in routing-controllers
/docs
/lang
/node_modules
/sample
/src
/test
/.github
/build
!cjs
!esm2015
!types
- 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"
- 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.
- 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 yournode_modules
. (Make sure to check your version specified in package.json and not straight up copy paste the version I'm using) - Whenever you change something in the
routing-controllers
package,publish
again and runyalc 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 I have made a config in webstorm to build everything and do an npm link automatically.
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.
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.