检测链接和未使用的文件以及未使用的JavaScript

我刚刚完成了我的网站,这是我2年前开始的。 我总是在尝试新事物,有时包括添加不同的框架或其他外部JS文件。

现在我不知道JS的哪些链接文件/行未被使用。 有没有可以检测这些文件和代码行的工具? 这会节省我很多时间。

这个答案提供了Google的Closure Compiler ,它在缩小和连接JavaScript代码的过程中可以删除“死代码”。

引用编译级别的文档 :

使用ADVANCED_OPTIMIZATIONS进行编译会删除可certificate无法访问的代码。 这与大型库结合使用时尤其有用。 如果仅使用大型库文件中的少数函数,则编译器可以从其输出中删除除这些函数之外的所有函数。

另请参阅此答案 ,其中包含有关Google Closure Compiler的更多信息。

我有这个需要,所以我创建了一个工具,可以在浏览器端检测未使用的JS,而不仅仅是来自源,因此它还可以测试第三方脚本。

它的工作原理是在您的计算机上创建一个本地代理,拦截JavaScript请求并即时处理这些文件。 该工具无法检测页面使用过的已检测文件的哪些部分,哪些部分没有。

我把它开源了,你可以在这里找到它: https : //github.com/gmetais/unusedjs 。

对于这个答案,我不确定它是否有用。 如何尝试声纳。 Sonar有一个javascript插件,可以检查你的js代码质量并列出未使用的代码。

我自己过去几周一直在寻找类似的任务,最后得到以下的powershell查询:

PS> Get-ChildItem -Path C:\PathToProject\ -Filter *.as?x -Recurse | select-string -pattern "src=""([^""]*.js)""" | Select -Expand Matches | Foreach { $_.Groups[1].Value } | select -unique 

首先,它递归选择项目目录中的所有.aspx和.ascx文件,然后找到引用.js文件的src属性值(可能是脚本元素的文件)并跟踪不同的值 – 瞧,你有一个.js文件列表在您的项目中引用!

调整查询以使其适合您的特定项目及其结构将非常简单。 确保不要迭代可能包含过时引用的过时文件。 考虑标记差异 – 你可以在过去使用单引号作为属性值,还是在“等于”符号周围留下不必要的空格,或两者兼而有之? 你能从其他js文件中以编程方式或异步方式包含这些文件吗? 等等