有关npm rum的3个简洁技巧(有关学习的名言)

网友投稿 904 2022-09-24

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

有关npm rum的3个简洁技巧(有关学习的名言)

设置环境变量和标志

Node.js有几个方便的配置选项,使用环境变量和命令行标志(比如过去用来启用0.12.x版中ES2015特性的古老的harmony标志)就可以设置。npm run命令,尤其是npm start指令,可以让你在运行前设置任何应用所需的标志。

{"scripts": {"start": "env NODE_PATH=./ node --harmony_proxies index.js"  } }

现在,如果运行npm start(npm run start的简称),npm会运行start脚本,启动带有特殊配置选项的应用。

命令行快捷键

在package.json中将gulp列作devDependency会好很多,但是,之后你就必须运行/node_modules/.bin/gulp watch而并非gulp watch,这样十分麻烦。这就是npm run大展身手的地方了。它能将 /node_modules/.bin 加到你的PATH中。换句话说,如果你把gulp3.8列作 devDependency,就能访问package.json脚本上的gulp可执行文件,而不需要用户运行npm install gulp –g。

{ "scripts": {"watch": "gulp watch" }}

现在,npm run watch 是/node_modules/.bin/gulp watch的快捷方式。使用mocha也可以达到同样的效果。

{ "scripts": { "test": "mocha -r nyan test/*.test.js"  } }

现在,npm test(和npm run test一样)是在test目录中使用nyan cat指示器运行所有mocha测试的快捷方式。

Mocha可执行文件同样也有一些简洁的命令行标志。比如说,grep (简称 -g )mocha标志让你只运行名称和给定正则表达式匹配的测试。在npm >= 2.14.0中,你可以使用 – 传输其他标志为mocha。例如,下面的命令作用是相同的。

# This command... npm test -- -g "login.*fails"  # is the same thing as this one  /node_modules/.bin/mocha -r nyan test/*.test.js -g "login.*fails"

gulp的备选方案

作为强大的流构建系统,gulp能够让你并行化编译文件。这是一个很棒的工具,但是,对于某些应用程序,可能有点大材小用,尤其当你的团队不太了解Node.js流时。在许多情况下,npm run指令可以作为性能较温和的gulp替代物。举个例子来说,假如在example.js中有一些ES2015代码,你想通过babel transpile,之后导入browserify ,在浏览器中使用。

'use strict';  const co = require('co')  /node_modules/.bin/mocha -r nyan test/*.test.js -g "login.*fails"co(function*() {  console.log('Hello, world!');

如果想用gulp进行编译,你可能会用到gulp-babel和gulp-browserify npm两种模型,为gulp包装babel和browserify。然而,babel和browserify有命令行界面,因此你可以使用Unix-style pipes编译这一文件。注意,下面的例子要求使用babel 5.x,不适用于babel 6.

'use strict'; /node_modules/.bin/browserify example.js | ./node_modules/.bin/babel > ./bin/example.js

再说一次,/node_modules/.bin这部分很讨人厌。值得庆幸的是,如果你在package.json中定义编译脚本,使用 npm run编译也能够取得同样的效果。

{ "scripts": { "compile": "browserify example.js | babel > ./bin/example.js}}

文末思考

npm run指令让npm成为多功能的task runner,而不只是任务管理器。好的node.js应用凭借npm start和 npm test明确了如何运行应用以及如何测验。同样,npm run 让可执行npm模块(gulp、mocha、karma等)用作devDependencies更加方便。你甚至可以借助 npm run和Unix流来运行构建程序,无需gulp或者grunt等构建系统的帮助。从概念上讲,npm run 与package.json 中的scripts部分应该定义如何为你的应用完成最常见的指令行任务,如启动应用、检测和运行各种transpilers。

上一篇:除非万不得已,别 Catch!(万万不得已的意思解释)
下一篇:「运维」和「研发」,谁是真正造成故障的始作俑者?(开发人员在运维阶段发现系统缺陷)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~