在Electron中加载时区库的问题

时间:2016-07-20 19:07:44

标签: javascript electron

我的index.html包含以下脚本。

Uncaught Error: Cannot find module 'moment'

当我运行电子应用程序时,我得到<script src="js/moment.js"></script> <script onload="window.moment = require(__dirname+'/js/moment.js');" src="js/moment-timezone-with-data.min.js"></script> 。时区库似乎无法说明我已经包含了moment.js。

这确实是Electron的问题,因为在常规HTML文件结构中做同样的事情会导致一切正常。

编辑: 我试过以下面的方式修改我的代码。

$.ajax({
            url: root_url + 'getInfo/' + idClient,
            async: false,
            dataType: 'json',
            success: function(data){
                for (var x = 0; x < data.retour.length; x++) {
                    content += data.retour[x].startdate;
                    if(data.retour[x].aconfirmer == 1)
                        content += '&nbsp;&nbsp;<i class="fa fa-warning" title="À confirmer"></i>';
                    content += "<br>";
                }
            },
            error: function(e){
                console.log(e.responseText);
            }
        });

这仍然不会产生任何结果。

3 个答案:

答案 0 :(得分:1)

在我正在进行的当前电子项目中,这对我有用:

<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>

答案 1 :(得分:1)

大!这解决了我的时间和时区问题,在应用程序和浏览器中正常工作

<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>

答案 2 :(得分:0)

好哇!这个问题似乎可以从这个答案中解决。

Electron: jQuery is not defined

复制粘贴,答案如下:

<!-- 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>

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