gpt4 book ai didi

javascript - Electron: app.on ('ready' ) 永远不会被调用

转载 作者:数据小太阳 更新时间:2023-10-29 05:28:36 24 4
gpt4 key购买 nike

我正在尝试使用 TypeScript 和 webpack 运行 electron 应用程序。
我有这个 main.ts 文件和已编译的 main.js 文件。

我编辑了 main.js 以便我可以查看是否调用了 ready。

主要.ts

import { app, BrowserWindow } from 'electron';
import * as url from 'url';
import * as path from 'path';

let win: Electron.BrowserWindow = null;


console.log('start');
console.log(app.isReady);
app.on('ready', () => {
console.log('ready');
win = new BrowserWindow({ width: 800, height: 600 });
win.loadURL(url.format({
pathname: path.join(__dirname, '../', 'no.html'),
protocol: 'file:',
slashes: true,
}));
});

主要.js

console.log('main.js -- start');
exports.ids = [3];
exports.modules = {

/***/ 18:
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const electron_1 = __webpack_require__(19);
const url = __webpack_require__(20);
const path = __webpack_require__(21);
let win = null;
console.log('before ready');
electron_1.app.on('ready', () => {
console.log('ready');
win = new electron_1.BrowserWindow({ width: 800, height: 600 });
win.loadURL(url.format({
pathname: path.join(__dirname, '../', 'index.html'),
protocol: 'file:',
slashes: true,
}));
});


/***/ }),

/***/ 19:
/***/ (function(module, exports) {

module.exports = require("electron");

/***/ }),

/***/ 20:
/***/ (function(module, exports) {

module.exports = require("url");

/***/ }),

/***/ 21:
/***/ (function(module, exports) {

module.exports = require("path");

/***/ })

};;
console.log('main.js -- finish');

当我运行 ./node_modules/.bin/electron . 时,我的控制台显示

> electron .

main.js -- start
main.js -- finish

什么也没有发生。不会打开任何窗口。

这是我的文件夹结构。

.
├── build
│   ├── index.js
│   └── main.js
├── index.html
├── package.json
├── src
│   ├── index.ts
│   └── main.ts
└── webpack.config.js

我还在我的 package.son 文件上写了 "main": "build/main.js",

我的环境

操作系统:Mac 10.10.5
Electron :1.6.11
节点:v8.2.1
网络包:3.0.0

感谢阅读。我将不胜感激!

附言这是我的 webpack 配置文件。

const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: {
main: './src/main.ts',
index: './src/index.ts',
template: './src/memo.vue',
memo: './src/memo.vue'
},
output: {
path: __dirname + '/build',
filename: '[name].js'
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'common'
})
],
target: 'electron-main',
resolve: {
extensions: ['.ts', '.vue', '.js'],
modules: ["node_modules"],
alias: {
vue: 'vue/dist/vue.js'
}
},
module: {
rules: [
{
test: /\.ts$/,
include: [path.resolve(__dirname, 'src')],
exclude: [path.resolve(__dirname, 'node_modules')],
loader: 'ts-loader'
},
{
test: /\.vue$/,
include: [path.resolve(__dirname, 'src')],
exclude: [path.resolve(__dirname, 'node_modules')],
loader: 'vue-loader'
}
,
{
test: /\.ts$/,
include: [path.resolve(__dirname, 'src')],
exclude: [path.resolve(__dirname, 'node_modules')],
enforce: 'pre',
loader: 'tslint-loader',
options: {
fix: true
}
}
]
},
node: {
__dirname: false
}
}

最佳答案

我认为您没有正确使用 webpack 包及其入口点。以下 Works For Me™。

webpack.config.js

const path = require('path');

module.exports = {
entry: "./index.ts",
output: {
path: __dirname,
filename: "index.js",
},
module: {
rules: [{
test: /\.ts$/,
exclude: [/node_modules/],
loader: "ts-loader"
}]
},
resolve: {
modules:[
"node_modules"
],
extensions: [".ts", ".js", ".json"]
},
target: "electron-main"
}

index.ts

import * as electron from 'electron';

electron.app.on('ready', function () {
console.log("electron's body is ready... ");
})

package.json

{
"devDependencies": {
"devtron": "^1.4.0",
"ts-loader": "^2.3.2",
"typescript": "^2.4.2",
"webpack": "^3.4.1"
},
"dependencies": {
"electron": "^1.6.11"
},
"scripts": {
"dev": "electron ."
}
}

tsconfig.json

{
"compilerOptions": {
"target": "es2015",
"moduleResolution": "node",
"module": "commonjs"
},
"exclude": [
"node_modules"
]
}

enter image description here

即使我做了一个额外的文件 main.ts 的额外步骤和 import "./main.ts"index.ts它仍然有效。

关于javascript - Electron: app.on ('ready' ) 永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45421456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com