Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/db-developer/grunt-call-npm

run npm commands (like install or update) from grunt
https://github.com/db-developer/grunt-call-npm

Last synced: 2 months ago
JSON representation

run npm commands (like install or update) from grunt

Awesome Lists containing this project

README

        

# grunt-call-npm

run npm commands (like `install` or `update`) from grunt.

[![npm version](https://img.shields.io/npm/v/grunt-call-npm?color=blue)](https://www.npmjs.com/package/grunt-call-npm)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![jsdoc](https://img.shields.io/static/v1?label=jsdoc&message=%20api%20&color=blue)](https://jsdoc.app/)
[![Built with Grunt](https://cdn.gruntjs.com/builtwith.svg)](https://gruntjs.com/)
[![codecov](https://codecov.io/gh/db-developer/grunt-call-npm/branch/master/graph/badge.svg)](https://codecov.io/gh/db-developer/grunt-call-npm)
[![Build Status](https://travis-ci.com/db-developer/grunt-call-npm.svg?branch=master)](https://travis-ci.com/db-developer/grunt-call-npm)
[![dependencies](https://img.shields.io/librariesio/release/npm/grunt-call-npm)](https://libraries.io/)

This plugin is a fork of [grunt-npm-command](https://github.com/unindented/grunt-npm-command) (archived repository)
Reason: https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2

## content ##

* Usage (see further down this page)
* [Getting started guide](#getting-started)
* [Usage and examples](#usage)

* Developers
* [Testing grunt-call-npm](docs/grunt.md#testing)
* [Code coverage of tests for grunt-call-npm](docs/grunt.md#code-coverage)
* [Build grunt-call-npm from scratch](docs/grunt.md#building)
* [NPM integration of grunt-call-npm](docs/grunt.md#npm_integration)
* [Frameworks used for testing, building, etc.](docs/frameworks.md)
* [API of package grunt-call-npm](docs/api.index.md)

[Changelog](CHANGELOG.md)

## getting started ##

This guide assumes, that you are familiar with the use of
[npm](https://npmjs.com "Homepage of npm") and
[grunt](https://gruntjs.com "Homepage of grunt").
The plugin can be installed by the following command:

npm install grunt-call-npm --save-dev

Once installed, the plugin may be loaded from within your gruntfile:

grunt.loadNpmTasks( "grunt-call-npm" );

Setup the task configuration as described below (see usage) and run the task:

grunt call_npm

Of cause, the task can be integrated into any complex build process.

## usage ##

The following examples assume that the grunt plugin 'load-grunt-config' is used.
Alternatively, the code can of course be integrated into the 'gruntfile.js' file.

```javascript
// file call_npm.js
module.exports = function ( grunt, options ) {
return {
options: {
opts: { // options passed to nodes 'child_process::spawn'
// Note: this is a default option and can be omitted!
shell: true, // required as of https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2 (default! not required)
// Note: this is a default option and can be omitted!
quiet: true // will execute 'npm help' silently
// Note: this is a default option which defaults to 'false'; it can be omitted.
// ... // any other option that can be passed to 'child_process::spawn' 'opts'
}
},
always: { // this target 'always' of grunt multitask 'call_npm'
options: {
cmd: "help", // will run 'npm help'
args: [ ], // will append any arguments to 'npm help'
cwd: "./path/to/pkg", // will become the working directory of command 'npm help'
dryrun: true // will NOT run 'npm help' but print out the 'npm help' command that would have been run
// opts: {...} // define 'opts' to override 'opts' in default 'options' (s.a.)
}
}
};
};
```
For 'npm <command>' and matching command line arguments see [npm Docs](https://docs.npmjs.com/)