README
Getting started.
Install: npm i -g @episclera/multipack
Usage
- Open Multipack interactive WEB GUI multipack open
- Create a new monorepo following Multipack standards multipack generate workspace
? Workspace name (e.g., my-worspace) happyworkspace
? Workspace organization name (e.g., org my-organization) happyorg
- Create a new package in the current workspace following Multipack standards multipack generate package
? 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]
- Generates files using a custom generator at the specified path it can handle both absolute and relative paths. multipack generate ./pathToMyCustomGeneratorConfig.js
- Will lint the workspace and all packages in the workspace following Multipack standards multipack lint workspace
- Will lint the workspace and all packages in the workspace following the rules defined in the custom linter config file which you provided. multipack lint ./pathToMyCustomLinterConfig.js
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).