69

是否有可能将github 存储库中的抓取文件用作 jsFiddle 中的外部资源?

4

7 回答 7

102

TLDR;访问rawgit.com,它将直接从 GitHub 在 CDN 上弹出您的文件,以便您可以使用它们。

不幸的是,这里没有一个答案对我有用。由于连接被拒绝,该rawgithubURL 似乎不起作用。所以这是一个有效的完整解决方案。首先在 GitHub 中你需要点击Raw按钮来获取原始的 JavaScript。

在此处输入图像描述

然后从它带你的页面复制 URL。您会注意到,如果您尝试直接使用它,您会收到来自 JSFiddle 的警告。

在此处输入图像描述

更重要的是浏览器会给你一个错误,例如:

Refused to execute script from https://raw.githubusercontent.com/nnnick/Chart.js/master/Chart.min.js' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled.

获取该 URL 并访问rawgit.comhttps://rawgit.com/nnnick/Chart.js/master/Chart.min.js这将为您提供您可以使用的格式的 URL 。

我已经尝试并测试了它,它似乎可以正常工作而没有问题

于 2014-07-03T08:09:57.363 回答
25

这是一个更新的答案,因为 Github 的 url 略有变化......我遇到了这个问题并在今天解决了这个问题。希望这有助于人们最近找到这篇文章。Bootswatch 中的 Bootstrap Slate 主题示例:

  1. 原始文件网址: https ://raw2.github.com/thomaspark/bootswatch/gh-pages/slate/bootstrap.css

  2. 删除2.之后rawhttps ://rawgithub.com/thomaspark/bootswatch/gh-pages/slate/bootstrap.css

而已!:D

于 2014-01-10T16:15:49.697 回答
5

如今, JSDelivr似乎是最好的选择。

于 2018-11-20T22:52:08.690 回答
2

更新

如何使用或滥用 github 作为一种 CDN 并不是只有良性的“提琴手”才有的想法;犯罪分子也有这种想法。不幸的是,github 作为免费和匿名的,很容易被滥用。据我所知,上述一些解决方案现在已经被破坏的事实与此有关。

这是我的做法。它现在可以使用(2019 年 11 月),但不可否认它不是很方便。

如果您还没有,请自己获取一个 github 帐户。创建一个名称与您的 github 用户名相同的存储库。那个 repo(而且只有那个 repo)——我称之为“home repo”——你可以将它用作你的网络托管服务。https : // yourGithubUserName .github.io 将向公众展示你的 home repo“原始/原样”。(文件夹内容未显示,您必须有一个 index.html)

现在,如果您想在小提琴中使用其他人的 github 存储库,只需将完整的存储库复制到您的主存储库,然后只需在小提琴的 HTML 部分中使用脚本标记的 src 属性引用该存储库的副本. 像这样:

<head>
    <script src="https://mathheadinclouds.github.io/thirdparty/esprima.js"></script>
    <script src="https://mathheadinclouds.github.io/thirdparty/estraverse.browser.js"></script>
    <script src="https://mathheadinclouds.github.io/thirdparty/escope.browser.js"></script>
</head>
<body></body>

上面的片段显示了使用节点模块 esprima、estraverse 和 escope 的工作小提琴的 HTML 部分,也就是说,同名的 github 存储库。thirdparty在那里,因为这是我放置副本的子文件夹的名称(在我的家庭仓库中)。

正如我所说,不是很方便(很多复制和粘贴来设置它),但这对我有用。

我应该提一下,仅复制/粘贴可能还不够,您可能必须在引用的 repo 上执行 browserify 或 webpack(如果它是为节点制作的,那就是。)

这是我正在谈论的小提琴。

旧答案 (有效,但有点慢)

您可以使用requirify。它使您能够在浏览器命令行上要求(因为它在节点中);但它也适用于小提琴,我对其进行了测试。与上述其他方法相比,我不知道它是否是“最好的”(因为我没有对它们进行全部测试并对其进行测试),但它确实有效。

这是一个示例小提琴加载 esprima(javascript 解析器),然后 escodegen(依赖于 esprima 的反向 javascript 解析器),然后解析和重新生成一些简单的 javascript 代码。

什么

require('lorem', 'ipsum')

确实是,它从 npm 加载 ipsum 节点模块,并将结果放入名为 lorem 的全局变量中。所以这仅适用于 npm 模块,而不是一般的 github 文件,它们也不是节点模块。不应该有太大的限制,因为如果它是你自己的项目,你总是可以把它变成一个节点模块。

这里是

第二个例子使用相同的技术。

(((实际上它更简单,如小提琴所示。您可以将 2 个 require 语句一个接一个地放置,您不需要一个回调函数(只需一个回调函数等待两个都加载)) ))

于 2019-11-14T11:03:05.003 回答
1

如果以下文件夹结构中有 git repo

fiddletest/test1(fiddletest 是 repo 名称,test1 是一个文件夹)

那么相应的jsfiddle链接将是

http://jsfiddle.net/gh/get/<library name>/<version>/<github user name>/fiddletest/tree/master/test1/

文件夹和文件结构必须是这样的

fiddletest(the repo name)
|____ test1
      |____ demo.html
      |____ demo.js
      |____ demo.css
      |____ demo.details 

除了这三个文件,其他文件将被忽略。详细信息文件应包含外部资源的小提琴详细信息和链接(如果有),如下所示

---
name: test fiddle repo
description: this is a test repo
resources: 
  - http://abc.xyz.com/abc.js
  - http://abc.xyz.com/abc2.js
...

可能你已经注意到小提琴链接中的 and 了。如果小提琴是纯 js,则库名称应为“库”,版本应为“纯”

简而言之,指向 github 的小提琴链接应采用以下格式

http://jsfiddle.net/gh/get/<library name>/<version>/<github user name>/<repo name>/tree/<branchname>/<folder name>/
于 2015-03-18T12:20:43.373 回答
1

另一种可能性是将 Git 库添加到cdnJS 脚本存储库(他们写道,任何在 GitHub 上相当流行的库都将被接受),然后将其用作外部资源。

刚刚发现:在http://jsdb.io/上有很多 Javascript 库,在那里添加新库非常容易——我只需输入 Github 存储库的 URL。

于 2013-09-30T16:18:41.663 回答
0

2021

只需转到 github 文件并单击“下载”按钮并复制 URL - 它可以使用-此处fetch的工作示例(它不适用于 SO 代码段 - 我不知道为什么) -文件中的示例 url:

https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/VC/glTF-Embedded/VC.gltf

在此处输入图像描述

于 2021-04-19T14:58:58.627 回答