最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

将参数传递给npm运行脚本

IT培训 admin 5浏览 0评论

将参数传递给npm运行脚本

我在npm package.json中创建一个脚本。

该脚本将运行yeoman来搭建我的模板然后我想运行gulp任务来为特定文件做更多的东西(使用gulp-inject注入)

npm任务看起来像这样:

"scaffolt": "scaffolt -g scaffolt/generators template && gulp inject"

现在,我需要能够从命令行调用命令给我的模板命名。

我需要运行的命令如下:

npm run scaffolt {templateName}

但是,如果我这样做,那么我尝试运行一个名为与键入的{templateName}相同的gulp任务。

一个简单的例子:如果我运行npm run scaffolt myTemplate,那么第二部分将尝试运行一个名为gulp myTemplate的任务,失败。

有没有办法将{myTemplate}名称作为参数传递给脚本的第二部分,以便可以在gulptask中使用它?

gulp任务目前只有console.log process.argv

回答如下:

您可以将参数传递给npm run-script。这是documentation。

为这些操作制定gulp任务。

//gulpfile.js
const gulp = require('gulp');
const commandLineArgs = require('command-line-args');
const spawn = require('child_process').spawn;

gulp.task('inject', ['scaffolt'], () => {
  console.log('scaffolt complete!');
});
gulp.task('scaffolt', (cb) => {
  const options = commandLineArgs([{ name: 'templateName' }]);

 //use scaffolt.cmd on Windows!
 spawn('scaffolt', ['-g', 'scaffolt/generators', options.templateName])
    .on('close', cb);
});

在你的包裹中

//package.json
"scripts": {
    "scaffolt": "gulp inject "
}

并运行它npm run scaffolt -- --templateName=something

提示:npm run-script在PATH中附加node_modules/.bin目录,因此我们可以生成可执行文件,就像它们在同一个文件夹中一样!

将参数传递给npm运行脚本

我在npm package.json中创建一个脚本。

该脚本将运行yeoman来搭建我的模板然后我想运行gulp任务来为特定文件做更多的东西(使用gulp-inject注入)

npm任务看起来像这样:

"scaffolt": "scaffolt -g scaffolt/generators template && gulp inject"

现在,我需要能够从命令行调用命令给我的模板命名。

我需要运行的命令如下:

npm run scaffolt {templateName}

但是,如果我这样做,那么我尝试运行一个名为与键入的{templateName}相同的gulp任务。

一个简单的例子:如果我运行npm run scaffolt myTemplate,那么第二部分将尝试运行一个名为gulp myTemplate的任务,失败。

有没有办法将{myTemplate}名称作为参数传递给脚本的第二部分,以便可以在gulptask中使用它?

gulp任务目前只有console.log process.argv

回答如下:

您可以将参数传递给npm run-script。这是documentation。

为这些操作制定gulp任务。

//gulpfile.js
const gulp = require('gulp');
const commandLineArgs = require('command-line-args');
const spawn = require('child_process').spawn;

gulp.task('inject', ['scaffolt'], () => {
  console.log('scaffolt complete!');
});
gulp.task('scaffolt', (cb) => {
  const options = commandLineArgs([{ name: 'templateName' }]);

 //use scaffolt.cmd on Windows!
 spawn('scaffolt', ['-g', 'scaffolt/generators', options.templateName])
    .on('close', cb);
});

在你的包裹中

//package.json
"scripts": {
    "scaffolt": "gulp inject "
}

并运行它npm run scaffolt -- --templateName=something

提示:npm run-script在PATH中附加node_modules/.bin目录,因此我们可以生成可执行文件,就像它们在同一个文件夹中一样!

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论