节点JS避免费力地添加"使用严格的"到我的所有文件

时间:2014-03-21 09:42:54

标签: javascript node.js strict

所以我想为我的项目启用严格模式,但是我有很多文件,并且在所有文件的顶部添加"use strict";会很麻烦。我发现节点的--use_strict CLI选项非常棒,但是为项目目录中的每个文件启用它,包括所有第三方模块及其模块,我真的不想通过纠正每个人的文件,只是我的。

所以我的问题是,有没有办法可以自动添加"使用严格的"仅限我的文件?

3 个答案:

答案 0 :(得分:4)

您可以编写一个脚本来打开每个文件,并在其开头添加"use strict"\n并将其写回磁盘。

非常未经考验的例子:

var fs = require("fs"),
   files = fs.readDirSync('./'),
   i;

for (i = 0; i < files.length; i += 1) {
  var fileContent = fs.readFileSync(files[i]).toString();
  fileContent = "\"use strict\"\n" + fileContent;
  fs.appendFileSync(files[i], fileContent);
}

测试作为目录的file[i]并移动到函数,以便在需要时使其递归。

https://stackoverflow.com/a/11987281/85010https://stackoverflow.com/a/10559790/85010的启发。

答案 1 :(得分:2)

use-strict-cli 是一个Node.js命令行工具,用于在给定目录中找到的文件中添加/删除"use strict"语句。

可以在此处找到相关说明:

https://github.com/philidem/use-strict-cli

添加缺失的"use strict语句的示例用法:

use-strict ./src

删除遗失的"use strict"语句的示例用法:

use-strict ./src --remove

答案 2 :(得分:1)

我建议您在工作周期中采用jshint并让它为您执行此操作,其中包括一系列有用的检查,以确保高质量的代码。

我在我的网络项目的根目录中使用选项

维护.jshintrc
{
  "immed": true,
  "latedef": true,
  "newcap": true,
  "nonew": true,
  "trailing": true,
  "multistr": true,
  "devel": true
}

您看到strict: true实际上已丢失。这是因为jshint默认设置为true:)

然后你可以让jshint设置作为git pre-commit钩子运行,或者甚至更好地将它作为代码编辑器的插件安装,并在编码时实时修复错误(例如SublimeLinter package用于Sublime文本3)