为什么Electron Application有时不构建?

时间:2017-07-20 11:54:34

标签: javascript electron electron-builder electron-packager

我已经建立了一个电子应用程序。文件夹结构如下,

App
  js
    script.js
  css
  db
  node_modules
  views
  package.json
  main.js

我已将js文件包含在下面的表单中, 在html中,

<head>
    <script src= "../js/jquery.js"></script>
    <script src= "../js/bootstrap.min.js"></script>
    <link rel="stylesheet" href = "../css/css/bootstrap.min.css"/>
</head>
stuff..............
<script src="../js/script.js"></script>

当我使用electron-packager构建软件包时,构建成功。但是当我运行应用程序时,script.js中编写的功能无法正常工作。

更新1 在我的script.js中,我编写了以下代码

var Datastore = require('nedb')
  , db = new Datastore({ filename: 'db/data.db', autoload: true });
const fs = require('fs');
const {dialog} = require('electron').remote;
const XLSX = require('xlsx');

$(document).ready(function(){
    pricing_view();shipping_view();etr_view();cost_view();
})
stuff .................
$("#percentage,#channel_name,#brand").bind('keyup mouseup', function   
() {
    populate();
   });

更新2: 我使用devtools来查找错误。它说没有找到nedb模块。

当我使用npm start运行时,一切都会正常工作。但是在构建之后,script.js中的函数不起作用。 如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

尝试在捆绑应用的菜单中临时启用devtools,并查看网络或控制台部分是否有错误。

答案 1 :(得分:0)

尝试加载您的脚本:

<script>
    require('../js/script.js');
</script>

答案 2 :(得分:0)

尝试并阅读了电子包装机文档1天后,我找到了答案。使用电子打包程序打包时,请在 package.json 中将 devDependencies 更改为 dependencies 。这是因为电子包装程序会查找依赖项而不是devDependencies。

因此,在尝试打包应用程序之前,请先将devDependencies重命名为依赖项,或 npm install package_name --save

**注意:在使用电子包装程序进行包装时,请勿使用--save-dev,因为-dev将使依赖关系发展为依赖关系。