[英]Unexpected token import on Electron app
我使用GitHub的Electron構建了一個應用程序。 我使用推薦的加載模塊的方式,ES6語法:
import os from 'os'
下載樣板后 ,應用程序運行正常。 我已經能夠在background.js
文件中導入腳本而不會出現問題。 以下是我加載自定義模塊的方法:
import { loadDb } from './assets/scripts/database.js';
但是,當我在Electron中打開一個新的瀏覽器窗口( clipboard.html
)時,我正在加載一個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
窗口沒有的東西(也許是'Rollup'?),但我的應用程序代碼中沒有任何明確的建議。
您需要先通過匯總運行clipboard.js。 Rollup解析import語句。 您必須修改tasks / build / build.js才能執行此操作。
var bundleApplication = function () {
return Q.all([
bundle(srcDir.path('background.js'), destDir.path('background.js')),
bundle(srcDir.path('clipboard.js'), destDir.path('clipboard.js')), // Add this line
bundle(srcDir.path('app.js'), destDir.path('app.js')),
]);
};
@ 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
一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.