IBM Worklight 6.1 - 未捕获的ReferenceErrors:未定义WLJQ,未定义WL

时间:2013-12-16 08:48:27

标签: jquery eclipse backbone.js underscore.js ibm-mobilefirst

我使用Eclipse Juno中安装的IBM Worklight Developer Edition 6.1作为我的IDE和backbonejs作为我项目的主要javascript框架。

我的index.html

<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
    <script>window.$ = window.jQuery = WLJQ;</script>

    <script data-main="js/main" src="js/libs/require/require.js"></script>
</head>
<body>

</body>
</html>

我的main.js

require.config({
    paths: {
        jquery: 'libs/jquery/jquery-min',
        underscore: 'libs/underscore/underscore-min',
        backbone: 'libs/backbone/backbone-min',
        templates: '../templates',
        bootstrap: 'bootstrap.min',
        initOptions: 'initOptions',
        biiRibMobile: 'biiRibMobile',
        messages: 'messages'
    },
});
require(['app', ], function(App) {
    App.initialize();
});

我的app.js

// Filename: app.js
define(['jquery', 'underscore', 'backbone', 'router', // Request router.js
'bootstrap', 'initOptions', 'biiRibMobile', 'messages', ], function($, _, Backbone, Router, bootstrap, initOptions, biiRibMobile, messages) {
    var initialize = function() {
            // Pass in our Router module and call it's initialize function
            Router.initialize();
        };
    return {
        initialize: initialize
    };
});

我的initOptions.js

var wlInitOptions = {

    logger : {enabled: true, level: 'debug', stringify: true, pretty: false,
        tag: {level: false, pkg: true}, whitelist: [], blacklist: []},

    analytics : {
        enabled: false
        //url : ''
    }

};

if (window.addEventListener) {
    window.addEventListener('load', function() { WL.Client.init(wlInitOptions); }, false);
} else if (window.attachEvent) {
    window.attachEvent('onload',  function() { WL.Client.init(wlInitOptions); });
}

提前多多感谢。

7 个答案:

答案 0 :(得分:4)

这个问题实际上发生了很多,实际上真的令人沮丧。有时一切都会工作一段时间,无处不在,这个可爱的错误会弹出。你能做的事情(一直对我有用)是:

  1. 在Eclipse中,转到Project - &gt;干净......
  2. 选择清除所选项目复选框,然后选择您的项目
  3. 点击确定
  4. 我会先尝试一下然后看看它做了什么。如果没有,您可以执行删除和重新导入的可信方法。

答案 1 :(得分:4)

@DavidDhuyveter在评论中有一个很好的答案。我在Mac和Windows PC上遇到此问题。他的答案解决了我的Mac问题。

对于Windows,临时文件夹应位于/ Users / you / AppData / Local / Temp / 1 /或其他位置。

修改 大卫的评论被删除了。这是原作:

  

如果你在Mac上,请执行以下操作:退出eclipse。打开终端窗口和cd $ TMPDIR,rm -rf wlBuildResources wlPreview,重启Eclipse,重建你的应用程序,你应该好好去 -

答案 2 :(得分:1)

在v7.0中仍会出现此问题。

虽然TMPDIR的清洁工作有些次,但并不总是如此 - 我在这里看不到任何模式。

重新启动我的MACbook似乎工作可靠,我推测这是因为我们得到了一个新的TMPDIR。

我刚刚发现:

  1. 从服务器中删除项目
  2. 重命名项目(例如MyProjectZZZ)
  3. 重建和部署,但不用再费力了
  4. 将项目重命名回MyProject
  5. 重建和部署
  6. 似乎要清理干净

答案 3 :(得分:1)

每次当我从Worklight控制台打开应用程序时遇到此问题时,帮助我的是我右键单击应用程序,选择Run As - &gt;在我尝试从Worklight控制台加载它之前预览。 之后,无论我从哪里开始,应用程序都会开始工作。

答案 4 :(得分:0)

与WL 6.1相同的问题。我的应用程序无法使用链接“预览为常见的资源”,但它适用于移动浏览器模拟器

我通过退出eclipse解决了它,然后删除了tmp文件夹中的wlbuildressources和wlpreview文件夹(Linux上的/ tmp)。在那之后,我重新启动了eclipse并且它有效。但是,它是6.1中的一个错误。

答案 5 :(得分:0)

我想我终于想出了一个简单的解决方法。

在Eclipse中右键单击项目名称,选择“关闭项目”,然后再次右键单击并选择“打开项目”。这修复了我破损的预览页面。

答案 6 :(得分:0)

对我来说,最快的解决方法是删除项目,然后再将项目添加到工作区。这不需要重命名项目或其他过程。