npm-scripts
This package contains basic npm
scripts for Holaluz' front-end projects.
Usage
npm install --save-dev @holaluz/npm-scripts
...and then import/extend each config file with the ones from this library:
const eslintConfig = require('@holaluz/npm-scripts').eslint
module.exports = eslintConfig
const prettierConfig = require('@holaluz/npm-scripts').prettier
module.exports = prettierConfig
const stylelintConfig = require('@holaluz/npm-scripts').stylelint
module.exports = stylelintConfig
const lintStagedConfig = require('@holaluz/npm-scripts').lintStaged
module.exports = lintStagedConfig
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
}
}
VSC config
This config should give you autoformatting on save in .js
, .scss
, and
.vue
files.
{
"[javascript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
},
"[scss]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"prettier.disableLanguages": []
}
Deployment and versioning
npm-scrits
uses Semantic Release
to handle the release pipeline.
Triggering a new release will create the associated Git tag, the GitHub release
entry, and publish a new version on npm.
In order to trigger a new version, make sure you add the appropriate prefix and
message to the squashed commit. It is based on the Angular Commit Message Conventions. In short:
> fix: commit message
> feat: commit message
> fix: commit message
>
> BREAKING CHANGE: explain the breaking change
There's no need to overcomplicate things here. Keep it simple: fix
, feat
,
and chore
(plus BREAKING CHANGE
) should be enough for now.
FAQ
How can I extend some config locally?
First of all, ask yourself: Does this rule really need to be local to your
project? Or should I create a PR to this repo, so that it becomes available to
everyone?
If the answer is "yes, it needs to be local to my project", then you can extend
any config by just merging the exported object with your custom config:
const eslintConfig = require('@holaluz/npm-scripts').eslint
module.exports = merge(eslintConfig, {
rules: {'your-rule': 'error'}
})