在Electron中加载时区库时出现问题

Problems loading timezone library in Electron

本文关键字:问题 时区 Electron 加载      更新时间:2023-09-26

My index.html有以下脚本。

<script src="js/moment.js"></script>
<script src="js/moment-timezone-with-data.min.js"></script>

当我运行电子应用程序时,我会得到一个Uncaught Error: Cannot find module 'moment'。时区库似乎无法判断我是否包含了moment.js.

这似乎是Electron的一个问题,因为在常规HTML文件结构中做同样的事情会使一切正常工作。

编辑:我已尝试以以下方式修改代码。

<script src="js/moment.js"></script>
<script onload="window.moment = require(__dirname+'/js/moment.js');" src="js/moment-timezone-with-data.min.js"></script>

这似乎仍然没有产生任何结果。

这对我目前正在进行的电子项目有效:

<head>
  <script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
  <script type="application/javascript" src="js/jquery-2.1.3.min.js"></script>
  <script type="application/javascript" src="js/bootstrap.min.js"></script>
</head>

如果您想在与电子无关的html中编写javascript,您可以执行以下操作:

<script>
  /* Javascript */
</script>
<script>if (window.module) module = window.module;</script>
<script>
  const ipc = require('electron').ipcRenderer;
  /* Rest of electron related javascript */
</script>

太棒了!这解决了我的时刻和时区问题,在应用程序和浏览器中运行良好

<script>
    if (typeof module === 'object') {window.module = module; module = undefined;}
</script>

我的代码:

    <!-- inject:js -->
    <script src="lib/index.js"></script>
    <script src="lib/moment/moment-with-locales.min.js"></script>
    <script src="lib/moment-timezone/moment-timezone-with-data.min.js"</script>
    <script src="lib/mdg-foundation/mdg2.js"></script>
    <!-- endinject -->
    <script>if (window.module) module = window.module;</script>

Huzzah!这个问题似乎从这个答案中得到了解决。

Electron:jQuery未定义

复制粘贴,答案如下:

<!-- Insert this line above script imports  -->
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
<!-- normal script imports etc  -->
<script src="scripts/jquery.min.js"></script>    
<script src="scripts/vendor.js"></script>    
<!-- Insert this line after script imports -->
<script>if (window.module) module = window.module;</script>

基本上,在使用脚本附件之前插入第一行和最后一行。