我刚刚完成了我的网站,这是我2年前开始的。我一直在尝试新事物,有时包括添加不同的框架或其他外部JS文件。
现在我不知道JS的哪些链接文件/行未被使用。有没有可以检测这些文件和代码行的工具?这会节省我很多时间。
答案 0 :(得分:12)
This回答提供Google's Closure Compiler,在缩小和连接JavaScript代码的过程中,可以删除“死代码”。
从the documentation引用编译级别:
使用ADVANCED_OPTIMIZATIONS进行编译会删除可证明无法访问的代码。这与大型库结合使用时尤其有用。如果仅使用大型库文件中的少数函数,则编译器可以从其输出中删除除这些函数之外的所有函数。
另请参阅this answer,其中包含有关Google Closure Compiler的更多信息。
答案 1 :(得分:2)
我有这个需要所以我创建了一个工具,可以在浏览器端检测未使用的JS,而不仅仅是来自源,所以它也可以测试第三方脚本。
它的工作原理是在您的计算机上创建一个本地代理,拦截JavaScript请求并即时处理这些文件。该工具无法检测页面使用了已检测文件的哪些部分,哪些部分没有。
我将其设为开源,您可以在此处找到它:https://github.com/gmetais/unusedjs。
答案 2 :(得分:0)
对于这个答案,我不确定它是否有用。怎么样尝试声纳。 Sonar有一个javascript插件,可以检查你的js代码质量并列出未使用的代码。
答案 3 :(得分:0)
我自己过去几周一直在寻找类似的任务,并最终得到以下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文件中以编程方式或异步方式包含这些文件吗?等等。
答案 4 :(得分:0)
现在,在Google Chrome开发者工具中,您可以在“来源”标签上查看“覆盖率”,以按每个文件的百分比甚至逐行显示未使用的Javascript和CSS。
这是2017年的announcement of the feature。
答案 5 :(得分:0)
尽管这是一个很老的问题,但这可能有助于解决此类问题-https://github.com/skpaul/LocateMe
我将此代码写在我的项目中。