要求没有babel的电子文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了要求没有babel的电子文件相关的知识,希望对你有一定的参考价值。
我正在尝试将Web应用程序转换为电子应用程序。我有多个函数,在我使用转换器导入到main.js的不同文件中。
但是,每当我尝试在我的电子应用程序中执行此操作时,我遇到了一个问题,我正在使用模块来远离使用php来访问我的数据库。相反,我在npm上使用mysql模块。
我想将此函数保存在自己的文件中,然后在main.js中需要它。当我尝试用babel进行转换时,我得到一个关于Net.Connection无法正常工作的错误(或者沿着这些行的东西)。据我了解,这是因为Node的工作原理。我很乐意解决这个问题,但我希望有一种方法可以将这个功能保存在另一个文件中,并导入它而不必使用babel。
function loadColourFilter(){
var mysql = require('mysql');
let query_result;
var connection = mysql.createConnection({
host : 'xxxxxxxxxxxx',
user : 'xxxxxxxxxxxx',
password : 'xxxxxxxxxxxx',
database : 'xxxxxxxxxxxx'
});
connection.connect();
let query = "xxxxxxxxxxxxxxxx";
connection.query(query, function (error, results, fields) {
});
connection.end();
return (query_result);
}
编辑:我删除了功能的一些部分,以保证凭证安全和诸如此类。我相当肯定他们的缺席在尝试解决这个问题时不会改变任何事情。
编辑:我的项目目录本质上
src
--- js
--- --- main.js
--- functionFile.js // This would be where my loadColourFilter function above would be saved
--- node_modules
--- --- ...
--- index.html // js/main.js is referenced in a script tag here.
--- main.js // Where the electron window is created.
--- package.json
应该有2个js上下文,一个在电子应用程序中运行,一个在节点中运行。如果您处于电子上下文(类似于浏览器js上下文),则无法直接从目录中要求脚本。
我只是假设这是因为我们没有得到很多关于你的问题的信息,另一个答案应该已经解决了你的问题。
尝试将您的js文件包含在index.html中,看看是什么。
编辑:因为它是babel的一个Transpiling错误,所以当它应该为浏览器进行转换时,babel可能正在为节点进行转换。
您可以通过创建源文件然后添加module.exports赋值来从文件中导出一些功能/变量/等,从而轻松地使用NodeJS创建一个简单的本地模块。在您的情况下,类似于名为colourFilter.js的文件,其内容为:
function load(){
var mysql = require('mysql');
let query_result;
var connection = mysql.createConnection({
host : 'xxxxxxxxxxxx',
user : 'xxxxxxxxxxxx',
password : 'xxxxxxxxxxxx',
database : 'xxxxxxxxxxxx'
});
connection.connect();
let query = "xxxxxxxxxxxxxxxx";
connection.query(query, function (error, results, fields) {
});
connection.end();
return (query_result);
}
module.exports = load
然后在您希望使用它的代码中,通过执行以下操作来包含它:
loadColourFilter = require('colourFilter.js')
并使用像这样的功能
let result = loadColourFilter()
这是将代码拆分为多个文件/类/模块的简单方法,但仍然保留一个主文件/类/模块作为面向公众的部分或入口点的重要文件/类/模块。当然,您不必使用我上面使用的名称:P
如果你想制作一个对象式模块,你可以改为输出一个像这样的对象
module.exports = {
load
}
要么
module.exports = {
load: loadFunctionNameInThisFile
}
然后像使用它一样
const colourFilter = require('colourFilter.js')
let result = colourFilter.load()
以上是关于要求没有babel的电子文件的主要内容,如果未能解决你的问题,请参考以下文章
babel-preset-react-app 没有拾取环境变量
如何使用“babel-node --presets es2015,stage-3”为电子应用程序设置 npm start