未捕获的 ReferenceError:未定义 jstz
Posted
技术标签:
【中文标题】未捕获的 ReferenceError:未定义 jstz【英文标题】:Uncaught ReferenceError: jstz is not defined 【发布时间】:2020-12-04 05:51:45 【问题描述】:您好,我正在使用 webpacker 使用 Rails 6 开发应用程序,遇到 javascript 错误。
Uncaught ReferenceError: jstz is not defined
at htmlDocument.<anonymous> ((index):62)
at fire (jquery.js:975)
at Object.fireWith [as resolveWith] (jquery.js:1085)
at Function.ready (jquery.js:407)
at HTMLDocument.DOMContentLoaded (jquery.js:84)
我看到 webpacker 编译成功
Entrypoint application = js/application-7e55ed0e528c94e39f58.js js/application-7e55ed0e528c94e39f58.js.map
Entrypoint cookie = js/cookie-f1267dd65b07bdb515fe.js js/cookie-f1267dd65b07bdb515fe.js.map
Entrypoint jquery = js/jquery-08b07c2f819304da36bb.js js/jquery-08b07c2f819304da36bb.js.map
Entrypoint jstz = js/jstz-e4a49c2bcb34d7327712.js js/jstz-e4a49c2bcb34d7327712.js.map
Entrypoint require = js/require-bbf43dd046c0adca977d.js js/require-bbf43dd046c0adca977d.js.map
[./app/javascript/channels/index.js] 211 bytes application [built]
[./app/javascript/packs/application.js] 1.46 KiB application [built]
[./app/javascript/packs/cookie.js] 737 bytes cookie [built]
[./app/javascript/packs/jquery.js] 289 KiB jquery [built]
[./app/javascript/packs/jstz.min.js] 5.93 KiB jstz [built]
[./app/javascript/packs/require.js] 25.8 KiB require [built]
我在我的视图文件中使用 jstz,如下所示
<%= javascript_pack_tag 'jstz' %>
<%= javascript_tag do -%>
jQuery(document).ready(function ()
jQuery('#user_name').focus();
jQuery('#user_time_zone').val(jstz.determine().name());
);
<% end -%>
请帮我解决这个问题,我纠结了很久,真的很费时间。
【问题讨论】:
【参考方案1】:而不是包含jstz
,我认为如果您让yarn
为您提供漫画插件会更好。
要完成这项工作,您应该在文件中编写脚本,然后将其包含在视图中:
// file something.js
const jstz = require('packs/jstz.min.js');
$(document).ready(function ()
$('#user_name').focus();
$('#user_time_zone').val(jstz.determine().name());
);
在视图中:
<%= javascript_pack_tag 'something' %>
或者您可以通过添加到您的 appliation.js 中使 jstz
可以调用全局:
const jstz = require('packs/jstz.min.js');
window.jstz = jstz
在视图中:
<%= javascript_tag do -%>
jQuery(document).ready(function ()
jQuery('#user_name').focus();
jQuery('#user_time_zone').val(jstz.determine().name());
);
<% end -%>
【讨论】:
嗨,正如你所说,我已经用 yarn 插件管理了 jstz,这对我有用。谢谢你的建议 :)以上是关于未捕获的 ReferenceError:未定义 jstz的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的 ReferenceError:未定义 showCategory
未捕获的 ReferenceError:“$ 未定义”[重复]
PhoneGap 错误 - “未捕获的 ReferenceError:cordova 未定义”