
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Vinus is an abstruction built on top of Gulp. It helps you accomplish common Gulp tasks without any initial configuration.
Vinus help you achieve common javascript and css tasks (compile, minify, concat or even generate rtl css styles). Vinus is an abstruction built on top of Gulp v4 so you can accomplish common Gulp tasks without any initial configuration.
Vinus helps you in:
Vinus makes every things ready for you. It's fast and easy to use:
Vinus accepts (input as) organized nodes of assets. Node types are: css, js, copy. Each node has several properties such as src and dist. You can add multiple nodes of the same type.
Vinus offer an api to build your nodes as desired by chaining calls of api functions. There are two type of functions:
newCss() newJS()src() dist().After starting a new node, any trailing calls considered as customization for the last node as long as the call does not create a new node.
vinus
//create new css node 1
.newCss()
//set node 1 source
.src('src/css/style1.css')
//set node 1 distination
.dist('dist/css')
//create new css node 2
.newCss()
//set node 2 source
.src('src/css/style2.css')
//set node 2 distination
.dist('dist/css')
//create new js node 3
.newJs()
//set node 3 source
.src('src/js/index.js')
//set node 3 distination
.dist('dist/js')
newCss() Create new css node. Then you can customize this node using:
src(src) To set the source which can be one path or array pathsdist(dist) To set the destination. If it contains a trailing file name, then Vinus will concat source filesconcat(name) To concat the source into one filerename(name) To set the name of the output fileasLess() Indicate that source is LessasSass() Indicate that source is SasswithRtl() To generate rtl from ltrnewJs() Create new js node. Then you can customize this node using:
src(src) To set the source which can be one path or array pathsdist(dist) To set the destination. If it contains a trailing file name, then Vinus will concat source filesconcat(name) To concat the source into on filerename(name) To set the name of the output filebabelify() To pass the source through Babelbrowserify() To pass the source through BrowserifyasTs() Indicate that source is TypescriptnewCopy() Create new copy node. Then you can customize this node using:
src(src) To set the source which can be one path or array pathsdist(dist) To set the destination. If it contains a trailing file name, then Vinus will concat source filesrename(name) To set the name of the output fileAlias Functions:
css(src, dist)
newCss().src(src).dist(dist)sass(src, dist)
newCss().src(src).dist(dist).asSass()less(src, dist)
newCss().src(src).dist(dist).less()js(src, dist)
newJs().src(src).dist(dist)vue(src, dist) for VueJs
newJs().src(src).dist(dist).babelify().browserify()babel(src, dist)
newJs().src(src).dist(dist).babelify()ts(src, dist)
newJs().src(src).dist(dist).babelify().browserify().asTs()copy(src, dist)
newCopy().src(src).dist(dist)Configuration Functions:
Vinus has several global options, you are free to customize them using:
setGlobals(options) where options is an object that has the desired values. Available options are:
prodSuffix of type string default is '.min'rtlSuffix of type string default is '.rtl'npm install --global gulp-clinpm install vinusnpx vinus init will generate start.js, .babelrc, tsconfig.json, gulpfile.js. Note: this command will not copy any file if it is already exist.start.jsgulp to compile all nodes. You can use:
gulp scripts to compile js nodes onlygulp styles to compile css nodes onlygulp copy to compile copy nodes onlygulp watch to watch source files and run Gulp if any has changed--prod flag to turn on production mode. This will minify output files.You can organize your nodes into groups. For example you can use newGroup('backend') to create a new group of nodes that are related to admin panel. And create another one newGroup('frontend') for the frontend.
Then you can choose which group to compile using --group flag. For example to compile backend only:
gulp --group=backend
If no --group flag supplied, then Vinus compiles the nodes that does not belong to any group.
Use --all flag to compile all groups.
Example
vinus
//no group
.css([
'src/css/nav.css',
'src/css/charts.css',
'...'
], 'dist/css/theme.css')
.withRtl()
.css('src/css/without-rtl.css', 'dist/css')
.sass('sass/style.scss', 'dist/css')
.js('src/js/')
//starting new group
.newGroup('vendors')
.copy('node_modules/jquery/dist/jquery.min.js', 'public/vendors/jquery')
.copy([
'node_modules/bootstrap/dist/css/bootstrap.min.css',
'node_modules/bootstrap/dist/js/bootstrap.min.js'
], 'public/vendors/bootstrap')
.newGroup('vue')
.js('src/js/vue/index.js', 'dist/js/vue/app.js')
For this example: The command gulp will compile all the nodes except those that come after vendors and vue groups. While gulp --group=vendors will compile the 2 copy nodes.
Vinus is open-sourced software licensed under the MIT license.
FAQs
Vinus is an abstruction built on top of Gulp. It helps you accomplish common Gulp tasks without any initial configuration.
We found that vinus demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.