我不知道何时使用需要('jslb')
与
<script>window.$ = window.jQuery = require('./js/jquery-2.2.4.min.js');</script>
我需要开始使用一些其他库(例如Handlebar、ds3.js、Bootstrap等),我不确定是否应该使用
在模块绑定器之前,必须通过
现在,更容易的方法是假设一个公共JS环境,并通过一个模块捆绑器获取所有内容,该模块捆绑器将在浏览器上下文中为您公开一个
要求
函数。
所有这些在电子应用程序的上下文中都是不必要的:
在普通浏览器中,网页通常在沙盒环境中运行,不允许访问本机资源。然而,电子用户有权使用节点。网页中的js API允许较低级别的操作系统交互。
比照渲染过程
这意味着本机节点。js
require
功能(以及其他功能)在渲染器进程中可用!
下面是一个简单的电子应用程序来证明这一点:
我的
package.json
:
{
"name": "foobar",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"devDependencies": {
"electron": "^3.0.7"
},
"dependencies": {
"the-answer": "^1.0.0"
}
}
我的
main。js
:(主流程)
const {app, BrowserWindow} = require('electron');
let mainWindow;
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600})
mainWindow.loadFile('index.html');
}
app.on('ready', createWindow);
我的
索引。html
:(渲染器进程)
<!DOCTYPE html>
<html>
<body>
<script>
const os = require('os'); // Standard Node.js module
const answer= require('the-answer'); // An NPM package that returns the answer to everything.
</script>
<button onclick="alert(os.platform())">YOUR PLATFORM</button>
<button onclick="alert(answer)">THE ANSWER</button>
</body>
</html>
那么你应该使用哪种方法呢?
电子暴露了本机Node.js
需要
函数。如果不利用这一点,那将是一种耻辱:您将能够按名称要求包,并将代码拆分为可重用的模块,就像您在任何ode.js应用程序中所做的那样。
有些库仅通过CommonJS接口公开其变量。其他变量,如jQuery,也将它们作为全局变量公开。
你不能只做
与CommonJS绑定
module.exports = myLibrary;
与全局范围的绑定
window.myLibrary = myLibrary;
如果一个库只做前者,那么如果不使用
需要
,您将无法访问该值。如果一个库只做后者,那么你将无法访问它与要求
的意义上的const myLibrary=要求('my-库')
一般来说,最好在全局变量上使用CommonJS。将变量添加到全局范围可能会导致名称冲突,直接加载依赖项会使下一个人更容易知道依赖项来自何处。更不用说,CommonJS允许静态分析工具更好地工作,因此您更有可能获得相关的代码完成和类型定义。
以jQuery为例,最好像这样使用它。
// main.js
const $ = require('./js/jquery-2.2.4.min.js');
// could also be done like this if you install it as a Node dependency
// const $ = require('jquery');
$(document).ready(...);
<!-- index.html -->
...
<script src="main.js"></script>
TL; DR
如果可能,请使用
require('my-library')
,如果不需要,请将它们作为全局文件加载。
问题内容: 在最新版本(v0.31.0)中,电子附带了静态链接的FFMpeg库(不是命令行工具,请参见#2588) 我知道很多用于ffmpeg的nodejs模块,但是它们看起来都像是命令行工具的api,那么理想情况下我该如何访问与电子捆绑在一起的ffmpeg库并编码流? 问题答案: 当前这是不可能的,因为没有针对Node.js的不错的库。意思是,只有这样抽象了CLI。但是,可以将其编译和链接为节点
我试图在一个电子应用程序中实现基本的JavaScript代码示例。我已经成功地创建了我的项目,并在Google控制台中添加了一个API密钥凭证。 然而,当我尝试将基本样本放入电子应用程序时,我得到了以下错误: 拒绝在帧中显示https://accounts.google.com/o/oauth2/auth?client_id=...,因为它将X-Frame-Options设置为SAMEORIGIN
我正在尝试构建一个电子应用程序。我想从另一个js文件导入一些函数。但是当使用导入时,我得到错误显示 无法在模块外部使用import语句为什么会发生这种情况 我的代码是eventsource。js 事件处理程序。js 原型html
我目前正在为一个即将到来的项目评估电子。也许我的问题对于使用电子的人来说是微不足道的。然而,我在留档中找不到答案,或者可能没有完全掌握这个概念。 我想有一个网络应用,用户可以通过浏览器访问,如果他们选择或从本机应用,如果他们想使用USB设备(在本例中,是信用卡阅读器)连接到他们的电脑。因此,主。js文件会像这样打开远程web应用程序 能够访问本地资源有什么区别吗(文件、端口等,如果页面是远程的还是
我已经在Heroku上成功部署了Spring Boot应用程序。此应用程序应在用户填写表单后发送电子邮件。 问题是,在本地它可以工作,但在Heroku,该应用程序总是抛出AuthenticationFailedException,因为它正试图从Heroku在另一个国家的服务器使用我的Gmail帐户登录。 我的Gmail帐户没有双因素身份验证,并且启用了不太安全的应用程序选项。 我如何解决这个问题?
问题是,就应用程序生命周期处理和易于使用而言,这种体系结构是否可以被认为是安全的? Update:每次创建新的活动并希望获得数据时,它可以获得ApplicationContext的BehaviorSubject,然后订阅它,Subject将发出最后发出的值;我为什么要这样做?例如。假设你有新闻项目,你获取了新闻提要,你想启动后台任务来获取新闻项目的全部内容,在这种情况下,我可以在你滚动新闻列表时开