【问题标题】:Sonarqube : Create a custom page using reactSonarqube:使用反应创建自定义页面
【发布时间】:2017-11-22 09:13:27
【问题描述】:

我想使用 react 创建一个自定义页面,但我找不到执行此操作的文档。在 Sonarqube 文档中,只有使用 javascript 创建自定义页面的方法,我不明白示例插件如何与 react 一起使用。 你能告诉我是否有我可以使用的文档吗?

【问题讨论】:

    标签: reactjs sonarqube custom-pages


    【解决方案1】:

    简短的回答:没有。目前几乎没有人(据我所见,事实上没有人)使用自定义页面。

    但是,这是可能的。您需要使用Webpack(或类似的 JS 打包器)创建一个 React 项目。

    我还建议使用Create-React-App。这为您修复了很多设置。之后,在您的 index.js 中使用来自 SonarQube wiki 的示例代码。

    这是一个例子:

    /*
        PRODUCTION ENTRYPOINT
     */
    import React from 'react';
    import ReactDOM from 'react-dom';
    import Project from './components/Project';
    import './main.css';
    
    window.registerExtension('myplugin/coverage', function (options) {
    
        appendCustomCSS();
        let isDisplayed = true;
    
        window.SonarRequest.getJSON('/api/measures/component', {
            component: options.component.key,
            metricKeys: 'coverage'
        }).then(function (response) {
            if (isDisplayed) {
                let obj = JSON.parse(response.component.measures[0].value);
                let div = document.createElement('div');
                render(obj, div);
                options.el.appendChild(div);
            }
        });
    
        return function () {
            isDisplayed = false;
        };
    });
    
    function appendCustomCSS() {
        let fileref = document.createElement("link");
        fileref.setAttribute("rel", "stylesheet");
        fileref.setAttribute("type", "text/css");
        fileref.setAttribute("href", "/static/myplugin/coverage.css");
        document.head.append(fileref);
    }
    
    function render(objectArray, container) {
        ReactDOM.render(<div className="Coverage"><Project objects={objectArray}/></div>, container);
    }
    

    【讨论】:

    • 感谢您的回答。要使用 react 创建自定义页面,我将使用示例插件 (github.com/SonarSource/sonar-custom-plugin-example)。为了做我想做的事,我只需要删除未使用的脚本。原理优点是不用配置,不会忘记任何东西。
    猜你喜欢
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多