@mirawision/let-me-sync
v1.1.0
Published
An out-of-the-box solution to easily synchronize shared files between multiple projects
Readme
@mirawision/let-me-sync (lms)
@mirawision/let-me-sync is a tool to synchronize shared files between multiple projects. It allows you to keep specific files in sync with a global directory, making it easy to manage shared code and resources across different parts of your project.
Installation
Install @mirawision/let-me-sync globally:
npm install -g @mirawision/let-me-syncOr, install it as a dev dependency in your project:
npm install --save-dev @mirawision/let-me-syncUsage
Set Up Configuration File
Create a configuration file named lms.config.json in the root of your project to customize the behavior of the synchronization tool.
Configuration Options
globalDir: The global directory for synchronization.syncRules: An array of rules defining what should be synchronized and how.local: The local path of the file or directory.global: The global path where the file or directory should be synchronized.
ignore: An array of glob patterns to exclude files or directories from synchronization.
Synchronizing Files
These scripts can be run manually or attach to certain event like deploys or
Sync to Global
Synchronize files from your local project to the global directory:
lms toSync from Global
Synchronize files from the global directory to your local project:
lms fromUsage Example
Initial Directory Structure
/global
/api
users.ts
/components
avatar.tsx
/assets
logo.png
/web
lms.config.json
package.jsonConfiguration File
{
"globalDir": "../global",
"syncRules": [
{
"global": "api",
"local": "src/api"
},
{
"global": "components",
"local": "src/components/common",
},
{
"global": "assets/logo.png",
"local": "assets/logo/default_logo.png"
}
],
"ignore": ["node_modules/**", "dist/**"]
}Running the Sync
Sync from global directory to local project
lms fromDirectory Structure After Sync
/global
/api
users.ts
/components
avatar.tsx
/assets
logo.png
/web
/assets
/logo
default_logo.png
/src
/api
users.ts
/components
/common
avatar.tsx
lms.config.json
package.jsonContributing
Contributions are always welcome! Feel free to open issues or submit pull requests.
License
This project is licensed under the MIT License.
