跳到内容

使用静态资源

当使用 webpack 将所有资源打包在一起时,我们失去了提供资源完整路径的能力。 当我们需要使用像 fs 这样的模块或那些需要资源文件路径的模块时,这一点尤其重要。 electron-webpack 意识到了这个问题并提供了一个解决方案。

您可能已经在 项目结构 中注意到,有一个专门用于静态资源的目录 (static/)。 在这里我们可以放置我们明确不希望 webpack 打包的资源。 那么现在我们如何访问它们的路径呢?

使用 __static 变量

类似于 __dirname 在 Node.js 环境中工作时可以为您提供父目录名称的路径,__static 可用于为您提供 static/ 文件夹的路径。 此变量在 developmentproduction 中均可用。

用例

假设我们有一个静态文本文件 (foobar.txt) 需要使用 fs 读取到我们的应用程序中。 以下是如何使用 __static 变量来获取资源可靠路径的方法。

foobarbizzbuzz
someScript.js (mainrenderer 进程)
import fs from 'fs'
import path from 'path'

/* use `path` to create the full path to our asset */
const pathToAsset = path.join(__static, '/foobar.txt')

/* use `fs` to consume the path and read our asset */
const fileContents = fs.readFileSync(pathToAsset, 'utf8')

console.log(fileContents)
// => "foobarbizzbuzz"