参考错误: localStorage 未定义 - requireJS,r.js 优化器和localStorage。

4
我正在尝试使用r.js优化我的requireJS JavaScript应用程序。不幸的是,当它运行到"localStorage"函数(浏览器内置的localStorage函数)时停止了。
错误消息:
ReferenceError: localStorage未定义
发生错误的函数:
function getFromLocalStorage()
{
    return localStorage.getItem('foo') ? JSON.parse(localStorage.getItem('foo')) : {};
}

如何解决此类错误?在r.js优化器中是否可以使用localStore?
更多信息:
构建脚本:
({
    appDir: "../",
    baseUrl: "js/",
    dir: "./build",
    mainConfigFile: "app.js",
    paths: {
        jQuery: "empty:"
    },
    name: "app",
    findNestesDependencies: true
})

应用程序结构:

/
---> /js (where app.js lies)
     ---> /app (here lies the file with the localStore-call)
     ---> /lib

你最后有没有取得任何进展? - Waxen
并不是真的有问题,看起来是 requireJS 模块内的 reqiureJS 插件引起了问题。我换成了基本上相同的 UglifyJS。谢谢你的帮助! - akluth
1个回答

1

首先,您在上面的代码中有一个拼写错误。

我不想仅仅编辑您的代码,但我假设:

 return localStorage.getItemfootv') ? JSON.parse(localStorage.getItem('foo')) : {};

应该是:

return localStorage.getItem('foo') ? JSON.parse(localStorage.getItem('foo')) : {};



有了这个更改,我将您的代码复制到我的一个项目中,并且它可以很好地通过优化器。您使用的是哪个版本?我尝试了最新版本2.1.1。

如果这不是与您使用的优化器版本有关的问题,我建议您尝试将localStorage的引用更改为window.localStorage,看看是否有所不同。


谢谢,这只是一个打字错误,这个错误不在原始代码中。我也使用了2.1.1版本并尝试使用window.localStorage - 但没有成功,现在'window'未定义。 - akluth
我不确定如何准确理解这句话,但至少可以说明这不是使用localStorage的问题,而是优化过程中的问题。通过快速搜索,找到了这个链接:https://groups.google.com/forum/?fromgroups=#!msg/requirejs/Zt9FOu74NqA/utcTxVn78YIJ。请检查您正在使用的优化器命令,并确保它是正确的。 - Waxen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接