My frontend Reactjs app is stored in one repository.
My backend Node.js app is stored in another repository.
There are some functions used by both. Where should store those functions so that both repositories can access them?
>Solution :
You can create a library that exports all of the functions you’ll be needing, then publish it to NPM and add it to the dependencies of both projects’ package.json
. With NPM you can set your packages as private, too, in case you don’t want your code/package to be publicly available.
The starting point would be to create a directory with all the functions you need, export them all in an index.js
, and run npm init
to create a package.json
for your new project. You’ll be guided for naming and assigning a version number, then publish with npm publish
(you may need to create an account and run npm login
first). Then in your frontend and backend projects you simply npm install <your-package>
like any other npm package.
Your project directory may be as simple as…
myFunctions.js
index.js
package.json
myFunctions.js
:
export const functionA = () => {
return "a"
}
export const functionB = () => {
return "b"
}
index.js
:
export * from './myFunctions.js'
package.json
(can be created with npm init
:
{
"name": "my-functions",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Then in the directory run npm publish
, and in your other projects you can run npm install my-functions
.
And finally, in your other projects:
import { functionA } from 'my-functions';
// ...
functionA() // returns "a"