什么是生成文件?它与 Gruntfile 或 npm run 有何不同?

aln*_*fie 5 makefile npm gruntjs

最近在熟悉Mocha javascript测试框架的过程中,遇到了这个我不明白的部分:

生成文件

善良一点,不要让开发人员在你的文档中寻找如何运行测试,在你的 Makefile 中添加一个 make test 目标:

test:
    ./node_modules/.bin/mocha --reporter list

.PHONY: test
Run Code Online (Sandbox Code Playgroud)

这几乎没有描述性,如果您不知道 makefile 是什么,也不是很有帮助。

那么,什么是 Makefile?它与 Gruntfile 或使用有什么不同npm run

aln*_*fie 9

生成文件

Makefile(通常没有文件扩展名)是 Unixmake工具使用的配置文件。

引自我在 Make 上找到最好的介绍之一上如果您有兴趣了解更多关于 make 的信息,以及一般的任务运行程序,我强烈建议您阅读。

Make 是最初的 UNIX 构建工具。它在吞咽或咕噜声之前已经存在了很长时间。有些人喜欢,有些人讨厌,至少值得了解 make 的工作原理,优势是什么以及它的不足之处。

Make 在类 UNIX 系统上可用。这意味着 OSX、BSD 和 Linux。它公开任何系统命令,这意味着您可以运行系统命令并执行任意脚本。毫无疑问,像 gulp 和 grunt 这样的工具是受到或至少是做出反应的。

要使用 make,您需要创建一个 Makefile,然后从终端运行 make [what to run]。

Gruntfile.js

Gruntfile.js 是Grunt.js工具使用的 javascript 配置文件。

如果您愿意,更新的 node.js 版本是 Grunt.js,它是跨平台的(适用于 Windows)并用 Javascript 编写。两者都可以做类似的事情,比如连接文件、缩小 css、运行测试等。网上有很多关于 Grunt 的信息。

'npm 运行'

一些开发人员更喜欢使用的另一个选项是 npm 本身,使用npm run这篇关于如何使用 npm run 运行任务的信息性文章中描述的命令:

有一些花哨的工具 [Grunt] 用于在 javascript 项目上进行构建自动化,我从未感受到它们的吸引力,因为鲜为人知的 npm run 命令已经完全适合我需要做的所有事情,同时保持一个非常小的配置脚印。

如果您以前没有见过它,npm 会查看项目 package.json 中名为 scripts 的字段,以便使来自 scripts.test 字段的 npm test 和来自 scripts.start 字段的 npm start 工作。

npm test 和 npm start 只是 npm run test 和 npm run start 的快捷方式,您可以使用 npm run 运行您想要的脚本字段中的任何条目!

其他不错的介绍性资源:

  • `make` 的 GNU 实现不仅可以在 UNIX/POSIX 系统上运行,还可以在 Windows(各种形式,包括 DOS、原生 MSVC、MinGW 和 Cygwin)、OS/2、VMS 甚至 AmigaOS 上运行。FWIW。 (4认同)