问题:在使用Electron进行开发时,当您尝试使用任何需要jQuery的JS插件时,即使使用脚本标记加载正确的路径,插件也找不到jQuery.
例如,
<body>
<p id="click-me">Click me!</p>
...
<script src="node_modules/jquery/dist/jquery.min.js"></script> //jQuery should be loaded now
<script>$("#click-me").click(() => {alert("Clicked")});</script>
</body>
Run Code Online (Sandbox Code Playgroud)
运行上面的代码是行不通的.实际上,打开DevTools,转到Console视图,然后单击该<p>元素.你应该看到那种function $ is not defined或类似的东西.
现在TideSDK已经死了,我一直在寻找替代的'包装器'来运行HTML/CSS/JS应用程序作为独立的桌面应用程序.到目前为止,我遇到的三个可行选项是NW.js(以前称为node-webkit),括号-hell和Electron(以前称为atom-shell).
问题在于,在功能集,兼容性等方面似乎没有足够完整的三者之间的比较.我希望将其转化为关于(客观)差异的或多或少的规范线程.三,特别是关于:
node-inspector等.在作为应用程序开发人员进行选择时,哪些客观的技术差异很重要?
如何为Electron应用程序设置应用程序图标?
我正在尝试,BrowserWindow({icon:'path/to/image.png'});但它不起作用.
我是否需要打包应用才能看到效果?
什么底层技术/库是基于Microsoft的新(免费)跨平台编辑器Visual Studio Code (推出5/29/2015) ?有传闻称这只是Github的Atom编辑重新命名.
如何在Electron应用程序中将数据或消息记录到控制台?
这个真正基本的hello世界默认打开开发工具,我无法使用console.log('hi').Electron有替代品吗?
main.js
var app = require('app');
var BrowserWindow = require('browser-window');
require('crash-reporter').start();
var mainWindow = null;
app.on('window-all-closed', function() {
// Mac OS X - close is done explicitly with Cmd + Q, not just closing windows
if (process.platform != 'darwin') {
app.quit();
}
});
app.on('ready', function(){
mainWindow = new BrowserWindow({ width: 800, height: 600});
mainWindow.loadUrl('file://' + __dirname + '/index.html');
mainWindow.openDevTools();
mainWindow.on('closed', function(){
mainWindow = null;
});
});
Run Code Online (Sandbox Code Playgroud) 当我研究电子时,我找到了2种获取BrowserWindow对象的方法.
const {BrowserWindow} = require('electron')
Run Code Online (Sandbox Code Playgroud)
和
const electron = require('electron')
const BrowserWindow = electron.BrowserWindow
Run Code Online (Sandbox Code Playgroud)
const和const {}JavaScript有什么区别?
我无法理解为什么const {}可以工作.我是否想念JS的重要内容?
我们计划构建跨平台桌面应用程序.我们发现Node-Webkit是我们的完美选择.但GitHub开发了自己的框架,称为Electron,而不是使用Node-Webkit.
他们之间有什么区别?
我想使用电子开发桌面应用程序,该电子使用通过npm通过命令安装的sqlite3软件包
npm install --save sqlite3
Run Code Online (Sandbox Code Playgroud)
但它在电子浏览器控制台中出现以下错误
Uncaught Error: Cannot find module 'E:\allcode\eapp\node_modules\sqlite3\lib\binding\node-v45-win32-x64\node_sqlite3.node'
Run Code Online (Sandbox Code Playgroud)
我的开发环境是Windows 8.1 x64节点版本12.7
我的package.json文件如下所示:
{
"name": "eapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "electron ."
},
"author": "",
"license": "ISC",
"devDependencies": {
"electron-prebuilt": "^0.32.1"
},
"dependencies": {
"angular": "^1.3.5",
"sqlite3": "^3.1.0"
}
}
Run Code Online (Sandbox Code Playgroud)
index.js文件
var app = require('app');
var BrowserWindow = require('browser-window');
require('crash-reporter').start();
var mainWindow = null;
app.on('window-all-closed', function() {
if (process.platform != 'darwin') {
app.quit();
}
});
app.on('ready', …Run Code Online (Sandbox Code Playgroud) 我使用follwoing命令打包了我的电子应用程序
asar pack app app.asar
Run Code Online (Sandbox Code Playgroud)
现在,我需要解压缩并获取整个代码.反正有没有这样做?
electron ×10
node-webkit ×3
node.js ×3
javascript ×2
asar ×1
atom-editor ×1
html5 ×1
icons ×1
jquery ×1
native ×1
npm ×1
sqlite ×1