不会加载require.js的<script>标记上的data-main属性

内托里卡

我做了一个偶然的发现,我能够将我的数据主js文件加载到一个不加载requireJS的文件中

<script type="text/javascript" src="requirejs.config.js" data-main="theme.js"></script>
<script type="text/javascript" src="requirejs.js"></script>

它完美地加载了我的theme.js文件

这是requirejs的故意功能吗?还是一个错误?

我希望这不是一个错误。

我的requirejs.config.js的内容如下

var require = {
    baseUrl: '/js/',
    paths: {
        'jquery': "lib/jquery/jquery",
        'bootstrap': "lib/bootstrap/js/bootstrap"
    },
    shim: {
        'bootstrap': ['jquery']
    },
    map: {
        '*': {
            'jquery': 'jQueryNoConflict'
        },
        'jQueryNoConflict': {
            'jquery': 'jquery'
        }
    }
}

我在这里检查了每个样本,似乎它们没有做我意外发现的事情。

http://requirejs.org/docs/api.html#data-main

路易

我已经能够使用RequireJS 2.1.20重现您的报告的行为。您可以在此处看到执行检查的代码:

if (isBrowser && !cfg.skipDataMain) {
    //Figure out baseUrl. Get it from the script tag with require.js in it.
    eachReverse(scripts(), function (script) {

eachReverse循环查找所有script以相反的顺序元素。由于DOM的工作方式,仅循环script加载RequireJS的元素以及HTML中之前加载这些元素的元素,因为执行此代码时HTML仍在被浏览器解析的过程中。(因此,script加载RequireJS元素之后元素的DOM节点尚不存在。)循环中的函数搜索直到遇到具有的script元素data-main可能是加载了RequireJS的那个,也可能是之前的任何一个。

我不知道是将其视为错误还是具有意外副作用的功能。可能需要更改逻辑以检查元素src属性是否指向包含RequireJS的文件。但是,在我看来,这将是脆弱的。(这不能只是简单的文件名比较,因为如果您决定更改文件名,代码将会中断。)script

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

RequireJS:data-main不会加载文件

来自分类Dev

延迟加载不会加载ICollection属性

来自分类Dev

PHP Script不会加载具有大量数据的表

来自分类Dev

如何检查<a>标记上的CSS属性?

来自分类Dev

RichFaces 间隔标记上的渲染属性

来自分类Dev

yii-boostrap不会加载CSS或JS文件

来自分类Dev

primefaces codeMirror不会加载自己的CSS和JS

来自分类Dev

Nodemon 不会加载我的 index.js

来自分类Dev

标记中的Xamarin.Forms ViewModel不会加载dll

来自分类Dev

JPA:选择实体子集将不会加载@OneToOne属性

来自分类Dev

更改跨度的html不会加载所有属性

来自分类Dev

如果加载失败,是否有更好的方法在app.js脚本标记上添加onerror回调?

来自分类Dev

<script>标记src属性

来自分类Dev

无法样式化<script>标记上生成的RSS

来自分类Dev

在JavaScript中,是否可以在<script> </ script>标记中导入JS模块而不加载外部文件?

来自分类Dev

Express JS重定向-不会更改网址,也不会加载静态文件

来自分类Dev

node.js可以很好地加载html,但是不会加载相关的CSS

来自分类Dev

HTML标记上的Angular.js ternery语句

来自分类Dev

集群标记上的过滤器[HERE maps JS API]

来自分类Dev

检查所选文件与<input>标记上的accept属性匹配

来自分类Dev

<a>标记上的download属性在Chrome中不起作用

来自分类Dev

样式表是否在<link>标记上以TITLE属性中断?

来自分类Dev

<a>标记上的download属性在Chrome中不起作用

来自分类Dev

具有多个属性的 <select> 标记上的 querySelector

来自分类Dev

变量范围:require_once不会加载我的变量,但require会加载

来自分类Dev

使用Firefox运行时,HTML / JS github页面项目不会加载图像或声音

来自分类Dev

一旦部署到heroku,Rails应用程序不会加载Arbor.js

来自分类Dev

如果我在浏览器中禁用 javascript,则内容 React.js 将不会加载

来自分类Dev

<script> require('renderer.js') </script> - 不连接js文件

Related 相关文章

  1. 1

    RequireJS:data-main不会加载文件

  2. 2

    延迟加载不会加载ICollection属性

  3. 3

    PHP Script不会加载具有大量数据的表

  4. 4

    如何检查<a>标记上的CSS属性?

  5. 5

    RichFaces 间隔标记上的渲染属性

  6. 6

    yii-boostrap不会加载CSS或JS文件

  7. 7

    primefaces codeMirror不会加载自己的CSS和JS

  8. 8

    Nodemon 不会加载我的 index.js

  9. 9

    标记中的Xamarin.Forms ViewModel不会加载dll

  10. 10

    JPA:选择实体子集将不会加载@OneToOne属性

  11. 11

    更改跨度的html不会加载所有属性

  12. 12

    如果加载失败,是否有更好的方法在app.js脚本标记上添加onerror回调?

  13. 13

    <script>标记src属性

  14. 14

    无法样式化<script>标记上生成的RSS

  15. 15

    在JavaScript中,是否可以在<script> </ script>标记中导入JS模块而不加载外部文件?

  16. 16

    Express JS重定向-不会更改网址,也不会加载静态文件

  17. 17

    node.js可以很好地加载html,但是不会加载相关的CSS

  18. 18

    HTML标记上的Angular.js ternery语句

  19. 19

    集群标记上的过滤器[HERE maps JS API]

  20. 20

    检查所选文件与<input>标记上的accept属性匹配

  21. 21

    <a>标记上的download属性在Chrome中不起作用

  22. 22

    样式表是否在<link>标记上以TITLE属性中断?

  23. 23

    <a>标记上的download属性在Chrome中不起作用

  24. 24

    具有多个属性的 <select> 标记上的 querySelector

  25. 25

    变量范围:require_once不会加载我的变量,但require会加载

  26. 26

    使用Firefox运行时,HTML / JS github页面项目不会加载图像或声音

  27. 27

    一旦部署到heroku,Rails应用程序不会加载Arbor.js

  28. 28

    如果我在浏览器中禁用 javascript,则内容 React.js 将不会加载

  29. 29

    <script> require('renderer.js') </script> - 不连接js文件

热门标签

归档