Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/opuscapita/npm-scripts
NPM scripts: used for publishing packages, etc.
https://github.com/opuscapita/npm-scripts
changelog-generator javascript npm npm-scripts release-automation
Last synced: 3 months ago
JSON representation
NPM scripts: used for publishing packages, etc.
- Host: GitHub
- URL: https://github.com/opuscapita/npm-scripts
- Owner: OpusCapita
- License: apache-2.0
- Created: 2016-11-24T10:49:30.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-07-06T18:17:46.000Z (over 1 year ago)
- Last Synced: 2024-05-23T04:04:09.392Z (9 months ago)
- Topics: changelog-generator, javascript, npm, npm-scripts, release-automation
- Language: JavaScript
- Homepage:
- Size: 104 KB
- Stars: 3
- Watchers: 62
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://npmjs.org/package/@opuscapita/npm-scripts)
[](https://npmjs.org/package/@opuscapita/npm-scripts)
# OpusCapita npm scripts
## Synopsis
Package provides an unified release/build approach for **npm package** and **grails plugin** from npm packages.
## Usage
### Goals
#### npm-publish
Updates CHANDELOG.md and publishes npm module (all changes are committed and pushed to GIT repository)##### options
- `npm-publish --test` - generates npm package and saves as local file (tarball will be created instead of publishing to NPM)
- `npm-publish --release` - creates release, publishes the package to local repo with calling `update-changelog` goal#### update-changelog
Updates CHANGELOG.md that contains changes between the releases##### options
- `update-changelog --all` - completely regenerate full CHANGELOG.md with all changes between all the releases#### grails-plugin-install
Installs grails plugin to local repository##### options
- `grails-plugin-install --release` - installs plugin as release#### grails-plugin-deploy
Deploys grails plugin to remote repository##### options
- `grails-plugin-deploy --release` - deploys plugin as release#### grails-plugin-package
Packages grails plugin##### options
- `grails-plugin-package --release` - package plugin as release### NPM publish example
**package.json**
```json
...
"scripts": {
"npm-build": "rimraf ./lib && webpack --config ./webpack.production.config",
"npm-publish": "npm run npm-build && npm-publish",
"publish-release": "npm run npm-publish -- --release",
"publish-snapshot": "npm run npm-publish"
}
...
```### Grails plugin configuration
If you want **publish module as grails resources**, you can add **grails** section in your **package.json****package.json (simple resource files definition)**
```json
...
"grails": {
"artefactId": "simple-js-resources",
"groupId":"com.opuscapita.grailsplugins",
"resources": {
"simple-resource-module": {
"dependsOn": ["jquery"],
"defaultBundle": false,
"files": {
"bundles/first.js": "js/bundles/first.js",
"bundles/second.js": "js/bundles/second.js"
}
}
},
"standaloneFiles": {
"bundles/first.js": "src/java/first.js",
"bundles/second.js": "src/java/second.js",
"resources/fonts": "web-app/fonts"
}
}
...
```**package.json (extended resource files definition)**
```json
...
"grails": {
"artefactId": "extended-js-resources",
"groupId": "com.opuscapita.grailsplugins",
"resources": {
"complex-resource-module": {
"files": [{
"source": "bundles/main.css",
"target": "css/main.css",
"attrs": {
"type": "css",
"media": "screen, projection, print"
},
"exclude": "bundle, minify"
}, {
"source": "bundles/second.js",
"target": "js/bundles/second.js",
"attrs": {
"type": "js"
}
}]
}
}
}
...
```* `artefactId` - override artefact ID for grails plugins, by default will be taken from project.name
* `groupId` - override group ID for grails plugins, by default will be com.opuscapita.grailsplugins
* `resources` - defines resource bundles (used Grails Resource plugin) that should be generated
* `external-resources` - String, resource unique name/ID
* `dependsOn` - Array of grails resource module IDs (not required)
* `defaultBundle` - String or Boolean, defines grails resource module defaultBundle value (not required)
* `files` - copy files relative web-app dir (should be Object or Array, see examples above)
* `standaloneFiles` - copy files relative root dir**To be able to deploy grails plugins you must to have Maven v3.x to be installed
and mvn (or mvn.cmd under Windows) available in PATH.**## Contributors
* Dmitry Divin [email protected]
* Alexey Sergeev [email protected]## License
**OpusCapita npm-scripts** is licensed under the Apache License, Version 2.0. See [LICENSE](./LICENSE) for the full license text.