2017-03-07 62 views
0

首先,我不知道我遇到的问题是由于webpack或电子构建器还是组合。使用电子构建器和webpack在main.js中使用节点模块

问题所在。 当我为开发构建时,我可以在我的package.json文件{"main" : "app/main.js"}中指定的main.js文件中使用已安装的节点模块。

但是,当我用电子生成器来创建一个安装程序。当我使用安装程序安装应用程序时,启动应用程序时出现以下错误消息: Error Message 我的猜测是我收到此消息是因为所需的节点模块无法通过main.js找到。那么如何让它们可用?

我希望有一个人比我聪明我们只是更好地使用Google :)

Package.js:

{ 
 
    "main": "app/main.js", 
 
    "scripts": { 
 
    "hot-server": "node hot-server.js", 
 
    "build-bundle": "rimraf app/dist.release && better-npm-run build-bundle", 
 
    "start": "better-npm-run start", 
 
    "start-hot": "better-npm-run start-hot", 
 
    "backend": "node backend-dummy.js", 
 
    "dist-win": "npm run build-bundle && rimraf dist && build --win --ia32", 
 
    "dist-mac": "npm run build-bundle && rimraf dist && build --mac" 
 
    }, 
 
    "betterScripts": { 
 
    "start": { 
 
     "command": "electron ./", 
 
     "env": { 
 
     "NODE_ENV": "production" 
 
     } 
 
    }, 
 
    "start-hot": { 
 
     "command": "electron ./", 
 
     "env": { 
 
     "HOT": 1, 
 
     "NODE_ENV": "development" 
 
     } 
 
    }, 
 
    "build-bundle": { 
 
     "command": "webpack --config webpack.config.production.js --progress --profile --colors", 
 
     "env": { 
 
     "NODE_ENV": "production" 
 
     } 
 
    } 
 
    }, 
 
    "bin": { 
 
    "electron": "./node_modules/.bin/electron" 
 
    }, 
 
    "build": { 
 
    "appId": "app", 
 
    "files": [ 
 
     "dist.release/*", 
 
     "dist.resources/*", 
 
     "main.js", 
 
     "thirdparty/*", 
 
     "app.html" 
 
    ], 
 
    "extraFiles": [ 
 
     "lang/*", 
 
     { 
 
     "from": "build/extra", 
 
     "to": "./", 
 
     "filter": "**/*" 
 
     } 
 
    ], 
 
    "asar": true 
 
    }

+0

您是否在使用Electron-packager?另外,你的package.json的devDependencies部分是否有电子日志? –

+0

不,我不使用Electron-packager。我有依赖关系中的电子日志和电子更新器。 –

+0

经过多一点挖掘后,我认为它与我所有的节点模块使用browserify进行打包并隐藏在该捆绑包中有关。所以我想我有两个选择可以在我的包之外添加所需的节点模块,或者在我的包中访问它们。 –

回答

0

于是我找到了解决我的问题。我所做的是我看着这个项目: https://github.com/chentsulin/electron-react-boilerplate

当不得不软件包用于main.development.js所有node_modules特殊webpack.config.electron.js文件文件转换成一个包含main.js文件我们需要的一切。然后当电子程序启动时,它使用这个main.js包运行。要做到这一点,您需要在执行webpack.config.electron.js的package.json文件中添加一个构建脚本。

我认为通过查看链接项目比解释更容易理解如何解决它。