在chrome检查器中快速导入库

pix*_*pax 0 javascript google-chrome web-inspector coffeescript

有没有从js/coffee控制台导入库的快捷方法?现在,每次我需要使用库时,我都会注入一个脚本元素,将cdn链接到我的DOM,如下所示:

var jq = document.createElement('script');
jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
Run Code Online (Sandbox Code Playgroud)

这真是一种痛苦.必须有一些方法可以在本地存储常用的库,然后允许我的控制台使用requirejs或其他东西将它们导入一行(而不记住cdn url).我是一个蟒蛇人,我已经习惯于在我的PATH中插入任何已安装的模块.我希望能够以类似的方式玩js - 这就是我学得最好的方式.

Jac*_*son 5

对不起,但并不完全按照你想要的方式.但是您可以为自己设置一个实验室环境,通过给它一个简短的名称并通过cdnjs获取库来加快库的加载速度,它们具有合理可预测的URL路径名.

该函数看起来有点像这样:

window.jsopen = function(path) {
  var el = document.createElement('script');
  if(path.indexOf('http') == 0) {
    el.src = path;
  } else {
    el.src = '//cdnjs.cloudflare.com/ajax/libs/'+path;
  }
  document.head.appendChild(el);
}
Run Code Online (Sandbox Code Playgroud)

将其嵌入到一个简单的HTML和开放式开发人员工具中,并在旁边的选项卡中打开CDNJS站点.现在,您应该能够通过完整的URL或其路径的最后部分导入库.在您的示例中使用jQuery,它将简化为:

> jsopen('jquery/2.0.3/jquery.min.js')
undefined
> $
function (e,n){return new x.fn.init(e,n,t)}
Run Code Online (Sandbox Code Playgroud)

它仍然不像你在Python上得到的那样,但它比你在问题中描述的整个事情要好一点.

另请注意,该函数不会(不能)了解依赖关系,因此:

> jsopen('backbone.js/1.1.2/backbone-min.js')
undefined
Uncaught TypeError: Cannot call method 'each' [...]
Run Code Online (Sandbox Code Playgroud)

但:

> jsopen('underscore.js/1.6.0/underscore-min.js')
undefined
> jsopen('backbone.js/1.1.2/backbone-min.js')
undefined
> Backbone
Object {VERSION: "1.1.2", $: function,
Run Code Online (Sandbox Code Playgroud)

高级版:你可以做一个实验环境,知道用的组合依赖性BrowserifyNPM.