問題描述
我不知道何時使用 require('jslib')
與 <script src=""></script>
電子內(nèi)容頁面(例如 index.html).使用jQuery,我發(fā)現(xiàn)需要按如下方式加載:
<script>window.$ = window.jQuery = require('./js/jquery-2.2.4.min.js');</script>
我需要開始使用其他一些庫(例如 Handlebars、ds3.js、Bootstrap 等),我不確定是否應(yīng)該使用 <script>
標(biāo)簽加載這些庫,或者如果我應(yīng)該要求
他們.
在模塊捆綁器之前,必須通過 <script>
標(biāo)記或通過模塊加載器(例如
那么你應(yīng)該使用哪種方法呢?
Electron 公開了原生 Node.js require
函數(shù).不利用這一點將是一種恥辱:您可以按名稱要求包,并將您的代碼拆分為可重用的模塊,就像在任何 Node.js 應(yīng)用程序中所做的那樣.
I don't have a handle on when to use require('jslib')
versus <script src=""></script>
in Electron content pages (e.g. index.html). With jQuery, I discovered that it needs to be loaded as follows:
<script>window.$ = window.jQuery = require('./js/jquery-2.2.4.min.js');</script>
I need to start using some other libraries (e.g. Handlebars, ds3.js, Bootstrap, etc.) and I am not sure if I should be loading those with the <script>
tag or if I should require
them.
Before module bundlers, libraries would have to be imported either via a <script>
tag or via module loaders such as RequireJS.
Now it's easier to assume a CommonJS environment and get everything through a module bundler which will expose a require
function for you in a browser context.
All of this is not necessary in the context of an Electron app:
In normal browsers, web pages usually run in a sandboxed environment and are not allowed access to native resources. Electron users, however, have the power to use Node.js APIs in web pages allowing lower level operating system interactions.
Cf. renderer process
That means that the native Node.js require
function (amongst other things) is available in your renderer process!
Here's a simple Electron app to prove it:
My 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"
}
}
My main.js
: (the main process)
const {app, BrowserWindow} = require('electron');
let mainWindow;
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600})
mainWindow.loadFile('index.html');
}
app.on('ready', createWindow);
My index.html
: (the renderer process)
<!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>
So which method should you use?
Electron exposes the native Node.js require
function. It would be a shame not to leverage this: you would be able to require packages by their names and split your code into reusable modules as you would do in any Node.js apps.
這篇關(guān)于使用 require(lib) 與 <script>在電子應(yīng)用程序中的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!