gpt4 book ai didi

javascript - requirejs, almond : A stand alone module built with almond loads all dependencies, 但主要代码没有执行

转载 作者:行者123 更新时间:2023-11-28 08:25:51 26 4
gpt4 key购买 nike

我正在尝试用杏仁构建一个独立的模块,这是我的设置。问题在底部。

缩写的目录结构是:

|-static
|-core
|-js
|-require.js
|-almond.js
|-common.js
|-app.build.js
|-app
|-myApp.js

|-vendor
|-js
|-jquery.js
|-bootstrap.js
|-fancybox.js

common.js 的简要内容:

require.config({
baseUrl: "/static/core/js",
paths: {
'jquery':'../../vendor/jquery/1.7.2/jquery',
'bootstrap':'../../vendor/bootstrap/2.2.2/js/bootstrap',
'fancybox':'../../vendor/fancybox/2.0.6/jquery.fancybox',
},
shim: {
'bootstrap':['jquery'],
'fancybox': ['jquery'],
'app/messages': ["jquery"],
},
waitSeconds: 12
});

app/myApp.js 的缩写内容(是的,我知道我正在污染全局命名空间):

define(function (require) {
var $ = require('jquery');
require('fancybox');
require('app/messages');

//all myApp's code here
console.log('Is this thing on?')
});

我的构建文件:app.build.js:

mainConfigFile: 'common.js',
removeCombined: true,
skipDirOptimize: true,
wrapShim: false,
wrap: false,

modules: [
{
name: 'almond',
include: ['app/myApp'],
out: ['myApp.js'
},

],

更新(添加 html):我的 django 模板 HTML 底部:

{% require_module 'myApp' %}

模板标签翻译为:

<script src="/static/core/js/myApp.js"></script>

当我执行构建时,我得到了包含 almond 的完整构建、所有 myApp 的依赖项以及所有 myApp 的代码。但是,依赖项会加载并执行它们的代码,但 myApp 的代码不会执行。

我希望在 myApp 的依赖项加载后我会看到“这个东西打开了吗?” (参见上面的 app/myApp.js)在控制台中,但没有骰子...

注意:我实际上使用 django-require 来构建独立模块,但我认为 app.build.js 与它正在做的事情相当接近,并且考虑到最终的 myApp.js 文件包含所有必要的部分应该不会有什么区别。

最佳答案

尝试将定义类更改为需要类:

require( ["jquery", "fancybox", "app/messages"], function ($, fancybox, messages) {

//all myApp's code here
console.log('Is this thing on?')
});

使用 require 将包含 require.config 的文件放在头中的任何其他文件之上。然后确保包含新 require 函数的文件位于 HTML 中以供引用。

这至少是我过去使用 require 的方式。

关于javascript - requirejs, almond : A stand alone module built with almond loads all dependencies, 但主要代码没有执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22416207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com