javascript - 当存在字节顺序标记时,CssSquidSensor 和 JavaScriptSquidSensor 都失败并出现解析错误

标签 javascript c# css .net sonarqube

我们正在尝试使用 SonarQube 分析我们的 .Net 元素。除了 C# 之外,这些元素还包含 CSS 和 JavaScript。我认为我们的元素配置正确,CssSquidSensor 和 JavaScriptSquidSensor 都为每个元素执行,但由于文件开头存在字节顺序标记,它们无法解析我们的 css 和 js 文件。这只是一个需要更正的错误,还是有办法配置这些传感器以考虑 BOM?

这是 SQ 5.1、C# 插件 4.0、Css 插件 1.1 和 JS 插件 2.5。

下面是我们日志的一些示例输出。

10:27:55.947 INFO  - Sensor CssSquidSensor
10:27:56.072 ERROR - Unable to parse file: E:\jenkins\workspace\sq-test\Web.Subscribers\Account\Integrations\OAuth\ToUStyles\global.css
10:27:56.072 ERROR - Parse error at line 1 column 2:

 1: @import url('navigation.css');
     ^

10:27:58.895 INFO  - Sensor JavaScriptSquidSensor
10:27:59.285 INFO  - 188 source files to be analyzed
10:27:59.301 ERROR - Unable to parse file: E:\jenkins\workspace\sq-test\Web.Subscribers\Dashboards\RenderChart.js
10:27:59.301 ERROR - Parse error at line 1 column 2:

 1: function RenderChart(HdnOptionsID, HdnDataID, containerID, filterID) {
     ^

更新:

将推荐的 sonar.sourceEncoding=UTF-8 设置到位后,JS 文件看起来不错,但一些 CSS 文件,尤其是那些以 at-rules 开头的文件仍然失败如下:

02:33:13.743 ERROR - Parse error at line 1 column 2:

 1: ?@import url('navigation.css');
     ^

最佳答案

您需要在 sonar-project.properties 文件中设置 sonar.sourceEncoding=UTF-8 以便正确考虑 UTF-8 BOM 字符。

现在,我能够使用 CSS 插件 1.2 重现 CSS 文件的解析错误,它还不能理解 UTF-8 BOM 字符。

但是,在 C# 和 Javascript 文件上,我没有遇到 C# 插件 4.0 和 Javascript 插件 2.6 的任何问题。

在 CSS 插件上创建的问题:https://github.com/SonarCommunity/sonar-css/issues/88

关于javascript - 当存在字节顺序标记时,CssSquidSensor 和 JavaScriptSquidSensor 都失败并出现解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30482045/

相关文章:

递归函数的javascript返回

c# - 以编程方式将行添加到数据绑定(bind)的 DataGridView?

jQuery 没有将 css 设置为直接在 IE 中的页面加载上隐藏 div

c# - 使用 multipart/form-data 上传 - 无法在自托管服务中检索文件

javascript - Jquery,当屏幕宽度为 1050px 时删除类

html - Div 100% 长度变形 Bootstrap 模式对话框

javascript - 在运行时更新 CSS 文件,更改字体大小、背景颜色和窗口大小

javascript - 避免在 jQuery 内联 css 中使用双引号

javascript - javascript正则表达式中奇怪的空格

c# - Simple Injector - 注册抽象类实现的 IEnumerable