【发布时间】:2015-09-22 21:31:16
【问题描述】:
我正在使用 ES6 js 文件,然后由 gulp (browserify/babel) 编译,ES6 文件的示例是:
我有一个普通的 App.js 用于设置主窗口等。然后 html 页面将使用一个 main.min.js 文件,该文件基本上由我所有的 ES6 类编译到一个文件中组成:
loader.es6 文件
import Main from './pages/Main.es6'
new Main()
Main.es6 文件
import Vue from 'vue';
export default class Main extends Vue{
constructor() {...}
.....
}
编译和运行时,一切正常,一切都很好......但我想如果我想实现“IPC”、“远程”模块,我在编译时遇到了问题,因为他们找不到这些模块,通过我的类中的require() 或import.. 方法。
这样做会失败:
import Remote from 'remote'
import Main from './pages/Main.es6'
new Main()
或
var Remote = require('remote')
import Main from './pages/Main.es6'
new Main()
这是否可以做到或实现,或者不需要更多的思考,请回到正常的 js。
任何想法/建议都会非常感谢
编辑:添加错误详情
有问题的示例文件Main.es6
请参阅顶部添加的 var var Remote = require('remote'),这会导致以下错误。
即使使用import Remote from 'remote'
{ [Error: Cannot find module 'remote' from '/Volumes/DAVIES/ElectronApps/electron-vuejs-starter/resources/js/pages']
stream:
{ _readableState:
{ highWaterMark: 16,
buffer: [],
length: 0,
pipes: [Object],
pipesCount: 1,
flowing: true,
ended: false,
endEmitted: false,
reading: true,
sync: false,
needReadable: true,
emittedReadable: false,
readableListening: false,
objectMode: true,
defaultEncoding: 'utf8',
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null,
resumeScheduled: false },
readable: true,
domain: null,
_events:
{ end: [Object],
error: [Object],
data: [Function: ondata],
_mutate: [Object] },
_maxListeners: undefined,
_writableState:
{ highWaterMark: 16,
objectMode: true,
needDrain: false,
ending: true,
ended: true,
finished: true,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: false,
bufferProcessing: false,
onwrite: [Function],
writecb: null,
writelen: 0,
buffer: [],
pendingcb: 0,
prefinished: true,
errorEmitted: false },
writable: true,
allowHalfOpen: true,
_options: { objectMode: true },
_wrapOptions: { objectMode: true },
_streams: [ [Object] ],
length: 1,
label: 'deps' } }
【问题讨论】:
-
如何失败了?
remote模块的导出语法是什么样的?请向我们指出确切的文件(如果您必须链接它们)而不是整个项目。 -
那么
remote模块在哪里?你的意思是./remote? -
它是电子预建模块设置的一部分(我相信)。 Ass 在本机 js 文件中运行它,因为这一切都可以工作......它使您能够访问主电子进程和模块,如
var ipc = remote.require('ipc),这可能目前还不可能,因此必须使用正常的 ES5 方式。
标签: ecmascript-6 electron vue.js