所以我想为我的项目启用严格模式,但是我有很多文件,并且在所有文件的顶部添加"use strict";
会很麻烦。我发现节点的--use_strict
CLI选项非常棒,但是为项目目录中的每个文件启用它,包括所有第三方模块及其模块,我真的不想通过纠正每个人的文件,只是我的。
所以我的问题是,有没有办法可以自动添加"使用严格的"仅限我的文件?
答案 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/85010和https://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)