Getting started.
Install: npm i -g @episclera/multipack
Usage
multipack open
- Open Multipack interactive WEB GUI
multipack generate workspace
- Create a new monorepo following Multipack standards
? Workspace name (e.g., my-worspace) happyworkspace
? Workspace organization name (e.g., org my-organization) happyorg
multipack generate package
- Create a new package in the current workspace following Multipack standards
? What to create in the workspace (Use arrow keys)
❯ module [UMD package]
react [UMD React package]
web [Next.js app]
api [Strapi api]
cli [CLI package]
multipack generate ./pathToMyCustomGeneratorConfig.js
- Generates files using a custom generator at the specified path it can handle both absolute and relative paths.
multipack lint workspace
- Will lint the workspace and all packages in the workspace following Multipack standards
multipack lint ./pathToMyCustomLinterConfig.js
- Will lint the workspace and all packages in the workspace following the rules defined in the custom linter config file which you provided.
Multipack shared configs usage
With Prettier
In your .prettierrc.js
file just put this content.
const { prettierConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const prettierConfig = require('@episclera/prettier-config')
module.exports = prettierConfig
With Commitlint
In your commitlint.config.js
file just put this content.
const { commitlintConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const commitlintConfig = require('@episclera/commitlint-config')
module.exports = commitlintConfig
With Renovate
In your renovate.json
file just put this content. (Do not forgot to connect/install renovate app on GitHub)
{
"extends": ["@episclera"]
}
With Jest
In your jest.config.js
file just put this content.
const { jestConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const jestConfig = require('@episclera/jest-config')
module.exports = jestConfig
With Eslint
In your .eslintrc.js
file just put this content.
const { eslintConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const eslintConfig = require('@episclera/eslint-config')
module.exports = eslintConfig
With Stylelint
In your .stylelintrc.js
file just put this content.
const { stylelintConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const stylelintConfig = require('@episclera/stylelint-config')
module.exports = stylelintConfig
With LintStaged
In your lint-staged.config.js
file just put this content.
const { lintStagedConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const lintStagedConfig = require('@episclera/lint-staged-config')
module.exports = lintStagedConfig
With Webpack
In your webpack.config.js
file just put this content.
const { commonWebpackConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const { commonWebpackConfig } = require('@episclera/webpack-config')
module.exports = commonWebpackConfig
// OR you can mix multiple configs with "mergeConfigs" util
const {
commonWebpackConfig,
packageWebpackConfig,
mergeConfigs,
} = require('@episclera/multipack')
// OR install and import just what you need separately: const { commonWebpackConfig, packageWebpackConfig } = require('@episclera/webpack-config')
// const { mergeConfigs } = require('@episclera/multipack-utils')
module.exports = mergeConfigs(commonWebpackConfig, packageWebpackConfig)
With Postcss
In your postcss.config.js
file just put this content.
const { postcssConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const postcssConfig = require('@episclera/postcss-config')
module.exports = postcssConfig
With Tailwindcss
In your tailwind.config.js
file just put this content.
const { tailwindConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const tailwindConfig = require('@episclera/tailwind-config')
module.exports = tailwindConfig
With Next
Usage is similar to next-compose-plugins
In your next.config.js
file just put this content.
const { nextConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const nextConfig = require('@episclera/next-config')
module.exports = nextConfig()
OR if you want to provide custom plugins or next options or webpack options
const { nextConfig } = require('@episclera/multipack')
const { mergeConfigs } = require('@episclera/multipack-utils')
module.exports = nextConfig([myPlugin], {
publicRuntimeConfig: {
HOME_ROUTE_PATH: '/welcome',
},
webpack: config =>
mergeConfigs(config, {
resolve: {
alias: {
myAlias: './myPath',
},
},
}),
})
With NextI18Next
In your next-i18next.config.js
file just put this content.
const { nextI18NextConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const nextI18NextConfig = require('@episclera/next-i18next-config')
module.exports = nextI18NextConfig
With CodeGen
In your .codegenrc.js
file just put this content.
const { codeGenConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const codeGenConfig = require('@episclera/codegen-config')
module.exports = codeGenConfig
With Knex
In your knexfile.js
file just put this content.
const { knexConfig } = require('@episclera/multipack')
// OR install and import just what you need separately: const knexConfig = require('@episclera/knex-config')
module.exports = knexConfig
With PM2
In your pm2.config.js
file just put this content.
const { pm2Config } = require('@episclera/multipack')
// OR install and import just what you need separately: const pm2Config = require('@episclera/pm2-config')
module.exports = pm2Config
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Open Collective
Or you can sponsor viaAuthor
@episclera/multipack © Episclera, Released under the MIT License.
Authored and maintained by Episclera with help from contributors (list).