在节点上运行npm-scripts

时间:2016-02-11 15:28:20

标签: javascript node.js scripting npm

我正试图在我的项目中使用Grunt或Gulp。我认为替换它们的好方法是使用npm-scripts。

我知道npm-scripts利用package.json,但我注意到要运行更高级的构建过程,您需要包含命令行函数。但是,这不是一个跨平台的解决方案,因为Windows不支持Linux等操作系统支持的各种命令。

所以,我想知道你是否可以在Node上运行npm-scripts,只需用require语句引用你想要的任何npm包。

这可能吗?如果没有,除了Grunt和Gulp之外,npm脚本是否存在任何良好的跨平台解决方案?

2 个答案:

答案 0 :(得分:2)

是的,您可以在节点上运行“npm-scripts”。例如,我在package.json中有这个(为了清楚起见,删除了不相关的部分),rimrafwebpack都在纯JS中实现,并由node.js解释。事实上,rimraf是跨平台rm -Rf的一个很好的例子。只需发出npm run-script build

,此解决方案在windows,mac或linux机器上运行良好
{
    "scripts": {
       "build": "rimraf dist && webpack --config ./blah.js"
    },
    "devDependencies": {
        "rimraf": "^2.5.0",
        "webpack": "^1.12.10"
    }
}

或者你可以这样做:

"scripts": {
    "hello": "node hello"
}

hello.js中与package.json在同一目录中实现您想要的所有内容,并在该脚本中包含您需要的内容,如:

const hello = require("debug")("hello"); // require whatever module you need
console.log("hello world");

使用npm run-script hello

可以正常运行
> your-module@1.0.0 hello D:\dev\tmp
> node hello

hello world

答案 1 :(得分:0)

我会坚持使用webpack和npm。使用webpack比编写自定义grunt或gulp任务简单得多,dev服务器将提供一个稳定的本地环境来工作,它只是一个配置设置,你是金色的。我也会放弃使用全局安装,特别是如果您在团队环境中工作或正在运行持续交付。因为您无法在任何这些环境中控制全局安装或安装版本。