3

GitHub の Electron を使用してアプリを作成しました。モジュールをロードする推奨される方法、次の ES6 構文を使用しています。

import os from 'os'

定型文をダウンロードした後、アプリは正常に動作しています。background.jsファイルにスクリプトを問題なくインポートできました。以下は、カスタムモジュールをロードする方法です。

import { loadDb } from './assets/scripts/database.js';

しかし、clipboard.htmlElectron 内で新しいブラウザー ウィンドウ ( ) を開くと、JavaScript ファイル ( ) が読み込まれ、モジュールclipboard.js化が試行されます。importこの時点で、Unexpected token importエラーが発生しています。

私のclipboard.html

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Electron Boilerplate</title>

    <link href="./stylesheets/main.css" rel="stylesheet" type="text/css">

    <script>
        window.$ = window.jQuery = require('./assets/scripts/jquery-1.12.1.min.js');
    </script>
    <script src="./assets/scripts/clipboard.js"></script>
</head>
<body class="clipboard">[...]</body></html>

私のclipboard.jsファイル:

import { remote } from 'electron'; // native electron module
import { loadDb } from './assets/scripts/database.js';

const electron = require('electron');

document.addEventListener('DOMContentLoaded', function () { 
    var db = loadDb();
    db.find({ type: 'text/plain' }, function (err, docs) {
        var docsjson = JSON.stringify(docs);
        console.log(docsjson);
    });
});

繰り返しになりますが、アプリのメイン ウィンドウである 内で同じコードが使用されてapp.htmlいますが、これはエラーになりません。

メイン ウィンドウが、ウィンドウが初期化していないもの (おそらく「ロールアップ」?) を初期化しているように感じますがclipboard.html、アプリのコード内にこれを示唆する明示的な記述はありません。

4

2 に答える 2

0

@ user104317はそれを正しく理解しました..clipboard.jsによって「コンパイル」されませんでしたrollup.

あなたの場合にそれを追加したかっただけで、次のようになっているはずです:

var bundleApplication = function () {
    return Q.all([
        bundle(srcDir.path('background.js'), destDir.path('background.js')),
        bundle(srcDir.path('app.js'), destDir.path('app.js')),
        bundle(srcDir.path('assets/scripts/clipboard.js'), destDir.path('assets/scripts/clipboard.js')),
    ]);
};

その後、 のままにしておくこともできました./assets/scripts/clipboard.js

独立した js ファイルが多数ある場合 (SPA を構築している場合はそうすべきではありません)、次のように自動的にリストすることを検討してください。./tasks/build/generate_spec_imports.js

于 2016-03-31T23:35:39.760 に答える