Starting from Sitecore 9. Experience Editor introduced additional extension points, so now it is enough to extend pipelines with your own JS/CSS files following this example below:

<!-- language: lang-xml -->

    <pipelines>
      <ribbonStylesheets>
        <processor type="Sitecore.ExperienceEditor.Pipelines.RibbonStyleSheets.AddStaticList, Sitecore.ExperienceEditor">
          <path>/sitecore/myAssets/css/myRibbon1.css</path>
          <path>/sitecore/myAssets/css/myRibbon2.css</path>
        </processor>
      </ribbonStylesheets>
    
      <pageEditingStyleSheets>
        <processor type="Sitecore.ExperienceEditor.Pipelines.PageEditingStyleSheets.Processors.AddStaticList, Sitecore.ExperienceEditor">
          <path>/sitecore/myAssets/css/myEditing.css</path>
          <path>/sitecore/myAssets/css/myEditing2.css</path>
        </processor>
      </pageEditingStyleSheets>
    
      <pageEditingScripts>
        <processor type="Sitecore.ExperienceEditor.Pipelines.PageEditingScripts.AddDeclaredScripts, Sitecore.ExperienceEditor">
          <path>/sitecore/myAssets/js/myEditingScript1.js</path>
          <path>/sitecore/myAssets/js/myEditingScript2.js</path>
        </processor>
      </pageEditingScripts>
    </pipelines>