2016-02-11 128 views
0

我想摆脱在我的项目中使用grunt或gulp。我认为取代它们的好方法是使用npm-scripts。在节点上运行npm脚本

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

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

这可能吗?如果不是的话,除了Grunt和Gulp之外,是否有针对npm脚本的良好跨平台解决方案?

+1

如果你想把Gulp和Grunt放在后面,必须使用'npm'作为构建工具:http://blog.keithcirkel.co.uk/how-to-use-npm-as-a- build-tool/ – quasoft

+0

@Healforgreen它怎么样了?你有没有咕噜咕噜? – eflat

回答

1

是的,你可以在节点上运行“npm-scripts”。例如,我在我的package.json(为了清楚起见删除了不相关的部分),并且在纯JS中实现了rimrafwebpack,并由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

> [email protected] hello D:\dev\tmp 
> node hello 

hello world 
+0

地狱是的,太棒了。 – Healforgreen

0

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