【问题标题】:RequireJS loading issue (with packages)RequireJS 加载问题(带有包)
【发布时间】:2012-10-02 19:50:14
【问题描述】:

我正在使用 RequireJS 2.0.6。有时我的一个库 (amplifyjs) 有问题。

项目:

libs/
    amplify.js
    handlebars.js
    jquery.js
    require.js
packages/
    core/
        main.js
index.html
main.js

我的 main.js:

require.config({
    paths: {
        'jquery': '../libs/jquery',
        'amplify': '../libs/amplify',
        'handlebars': '../libs/handlebars'
    },
    shim: {
        'jquery': {
            exports: '$'
        },
        'amplify': {
            deps: ['jquery'],
            exports: 'amplify'
        },
        'handlebars': {
            exports: 'handlebars'
        }
    },
    packages: ['core'],
    baseUrl: './packages/'
});

require(['jquery', 'amplify', 'handlebars', 'core'], function() {
});

索引.html:

<script type="text/javascript" data-main="main" src="libs/require.js"></script>

75% 的时间它可以工作,但有时我会收到此错误:

GET http://localhost:8888/aa/test/packages/libs/amplify.js 404 (Not Found) 
Uncaught Error: Script error
    http://requirejs.org/docs/errors.html#scripterror 

路径错误!但我无法弄清楚为什么会发生这种情况?为什么只是有时?

(我很确定它必须对包做一些事情,但我不知道为什么会这样做)

【问题讨论】:

  • 您是否有时在不使用路径别名的情况下将放大作为依赖项调用?
  • 不,我只是刷新页面,出现此错误。 amplify 的唯一调用是在 require 方法中。

标签: package requirejs amd amplifyjs


【解决方案1】:

我想出了另一种方法,它确实有效!

require.config({
    paths: {
        libs: '../libs'
    },
    packages: ['core'],
    shim: {
        'libs/amplify': {
            deps: ['libs/jquery'],
            exports: 'amplify'
        },
        'libs/handlebars': {
            deps: ['libs/jquery'],
            exports: 'handlebars'
        },
        'core': {
            deps: ['libs/amplify', 'libs/handlebars']
        }

    }
});

【讨论】:

  • 你做了哪些改变来改变现状?在 shims、更通用的路径处理或其他东西之前声明包?
【解决方案2】:

(我很确定它与包有关,但我有 不知道为什么会这样)

packages 这个词指的是标准的 CommonJS,因为 requirejs 支持加载位于 CommonJS Packages 目录结构中的模块,并且模块本身应该是 RequireJS 可以理解的模块格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 2012-12-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    相关资源
    最近更新 更多