【问题标题】:Angular-cli + electron import typescriptAngular-cli + 电子导入打字稿
【发布时间】:2017-03-16 00:05:06
【问题描述】:

下午好,我无法在我的 ts 中导入电子模块。我有以下错误:找不到模块“电子”。 我的结构:

  • 项目
    • 协变量
    • 分布
    • 电子
      • main.js
      • package.json
    • 源
      • 应用程序
        • 组件...
      • 评估
      • 环境
      • 服务
        • 服务
      • index.html
      • main.ts
      • polyfills.ts
      • tsconfig.json
      • typings.d.ts
    • angular-cli.json
    • karma.conf.js
    • package.json
    • protractor.conf.js
    • tslint.json

main.js 电子:

const electron = require('electron')

const app = electron.app

const BrowserWindow = electron.BrowserWindow

let mainWindow

function createWindow () {
  mainWindow = new BrowserWindow({width: 800, height: 600})
  mainWindow.loadURL(`file://${__dirname}/index.html`)

  mainWindow.webContents.openDevTools()

  mainWindow.setMenu(null);

  mainWindow.on('closed', function () {
    mainWindow = null;
  })
}

app.on('window-all-closed', function () {
  if (process.platform !== 'darwin') {
    app.quit()
  }
});

app.on('activate', function () {

  if (mainWindow === null) {
    createWindow()
  }
});

const ipc = require('electron').ipcMain

ipc.on('get-app-path', function (event) {
  event.sender.send('got-app-path', app.getAppPath())
})

我的 index.html:

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>X</title>
  <script>
    window.$ = window.jQuery = require('jquery');
    var electron = require('electron');
    document.write('<base href="' + document.location + '" />');
  </script>


  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body style="padding-top: 70px;">
  <app-root>
    loading...
  </app-root>
</body>
</html>

我在组件中的导入:

import { ipcRenderer } from 'electron';

我已经测试过: 打字.d.ts:

declare var System: any;
declare var electron: any;

在脚本 index.html 中声明:

var electron = require('electron');

和组件:

electron.ipcRenderer.on('got-app-path', function (event, path) {
    ...
});

什么都没发生……

有什么建议吗?感激不尽!

【问题讨论】:

    标签: javascript angular typescript electron


    【解决方案1】:

    我的问题通过声明解决了:

    <script>
    var electron = require('electron');
    </script>
    

    在 index.html 和 typings.d.ts 中:

    declare var electron: any;
    

    我的组件:

    const {ipcRenderer} = electron;
    console.log(ipcRenderer.sendSync('synchronous-message', 'ping'));
    

    部分问题是异步!

    【讨论】:

      猜你喜欢
      • 2016-09-17
      • 2019-06-20
      • 2016-10-31
      • 2017-03-07
      • 2022-11-05
      • 2020-04-19
      • 2023-02-09
      • 2023-03-18
      • 2019-04-07
      相关资源
      最近更新 更多