使用 npm scripts 而不是 Makefile 的原因是什么?

问题描述 投票:0回答:1

我已经开始学习具有 DevOps 和后端背景的前端开发。我经常使用 Makefile 来简化自动化。让我们检查一下 linting 的例子。

如果我现在要在前端项目中指定一个 linting 脚本,我将创建一个包含以下内容的 Makefile:

.PHONY: install_dev
install_dev:
    npm install --save-dev eslint eslint-plugin-react eslint-plugin-whitespace


.PHONY: eslint
eslint:
    npx eslint --fix --ext .js,.jsx,.ts,.tsx src

.PHONY: lint
lint: eslint
  

所以在

make lint
在控制台中,linting 将以指定的方式发生。

但是,我听说我可以在

package.json
的“脚本”部分中指定自定义脚本。哪种方式更好,为什么?

  "scripts": {
    "lint": "npx eslint --fix --ext .js,.jsx,.ts,.tsx src", // ?? I'm not sure about syntax
},

我不喜欢我的包信息与我的自动化混合在一起,但这似乎是前端开发的标准。我愿意弄清楚并了解它是否真的更好!但是我不明白为什么会这样。

选择 npm scripts 而不是 Makefile 的主要原因是什么?

附注我正在使用 create-react-app 来设置项目。

npm makefile continuous-integration react-scripts
1个回答
0
投票

你不需要停止使用 Makefile 来实现自动化,特别是如果你已经使用过它,你可以自动化并做比单独使用 npm 脚本更多的事情。

正如您通常控制 package.json 一样,您还可以决定何时要在其中添加脚本或何时将其保留在那里。我不知道是否有好的建议何时做什么,但对于我使用 eslint 的一个项目,我至少只在目标需要时才让它运行。我为此使用了哨兵文件。

归根结底,这是您的项目,每个项目都是不同的,因此请尽您所能。

从 composer scripts 的实践中——与 npm 相比,我有更多的经验——如果你用脚本做过一次,你就会很好地意识到什么时候停止使用它们并开始制作。但这只是我的 2 美分。

© www.soinside.com 2019 - 2024. All rights reserved.