在此项目中添加了其他依赖性:VUE,parwindcss和prisma.
在不断应有的工作中,我发行了npm run make
Cannot find module './prisma/client
在互联网上有一些解决方案,并在某个地方添加了此部分:
'**/*',
'node_modules/@prisma/client/**/*',
'node_modules/.prisma/**/*',
但是我不确定在哪里添加这些行。我试图将它们添加到我的packag.json下方的“构建” - 部分,也试图将它们添加到Froge.config.js中。但是什么都没有用 - 现在,该应用程序甚至不再启动了...希望这里有人可以帮助我。
我的包裹是我的包裹。
{
"name": "invoice-manager",
"productName": "Invoice Manager",
"version": "1.0.0",
"description": "",
"main": ".vite/build/main.js",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
},
"devDependencies": {
"@electron-forge/cli": "^7.6.1",
"@electron-forge/maker-deb": "^7.6.1",
"@electron-forge/maker-rpm": "^7.6.1",
"@electron-forge/maker-squirrel": "^7.6.1",
"@electron-forge/maker-zip": "^7.6.1",
"@electron-forge/plugin-auto-unpack-natives": "^7.6.1",
"@electron-forge/plugin-fuses": "^7.6.1",
"@electron-forge/plugin-vite": "^7.6.1",
"@electron/fuses": "^1.8.0",
"@vitejs/plugin-vue": "^5.2.1",
"autoprefixer": "^10.4.20",
"electron": "34.1.1",
"postcss": "^8.5.2",
"prisma": "^6.3.1",
"tailwindcss": "^3.4.17",
"vite": "^5.4.14"
},
"keywords": [],
"author": {
"name": "Dennis"
},
"license": "MIT",
"dependencies": {
"@aws-sdk/client-s3": "^3.744.0",
"@aws-sdk/lib-storage": "^3.744.0",
"@prisma/client": "^6.3.1",
"prisma": "^6.3.1",
"angular-expressions": "^1.4.3",
"docxtemplater": "^3.60.0",
"dotenv": "^16.4.7",
"electron-squirrel-startup": "^1.0.1",
"electron-store": "^10.0.1",
"flowbite": "^3.1.2",
"flowbite-vue": "^0.1.7",
"pinia": "^2.3.1",
"pizzip": "^3.1.8",
"vue": "^3.5.13",
"vue-router": "^4.5.0"
}
}
在这里forge.config.json:
const { FusesPlugin } = require('@electron-forge/plugin-fuses');
const { FuseV1Options, FuseVersion } = require('@electron/fuses');
module.exports = {
packagerConfig: {
asar: false,
},
rebuildConfig: {},
makers: [
{
name: '@electron-forge/maker-squirrel',
config: {},
},
{
name: '@electron-forge/maker-zip',
platforms: ['darwin'],
},
{
name: '@electron-forge/maker-deb',
config: {},
},
{
name: '@electron-forge/maker-rpm',
config: {},
},
],
plugins: [
{
name: '@electron-forge/plugin-vite',
config: {
// `build` can specify multiple entry builds, which can be Main process, Preload scripts, Worker process, etc.
// If you are familiar with Vite configuration, it will look really familiar.
build: [
{
// `entry` is just an alias for `build.lib.entry` in the corresponding file of `config`.
entry: 'src/main.js',
config: 'vite.main.config.mjs',
target: 'main',
},
{
entry: 'src/preload.js',
config: 'vite.preload.config.mjs',
target: 'preload',
},
],
renderer: [
{
name: 'main_window',
config: 'vite.renderer.config.mjs',
},
],
},
},
// Fuses are used to enable/disable various Electron functionality
// at package time, before code signing the application
new FusesPlugin({
version: FuseVersion.V1,
[FuseV1Options.RunAsNode]: false,
[FuseV1Options.EnableCookieEncryption]: true,
[FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false,
[FuseV1Options.EnableNodeCliInspectArguments]: false,
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
[FuseV1Options.OnlyLoadAppFromAsar]: true,
}),
],
};
asar: false
在这里我的prisma.scheme:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
问题,您能有任何想法吗?预先感谢!
Hello我以前对此感到不安,因为没有官方指南可以专门与Electron-Forge进行此操作。我的依赖性与您的依赖关系相同。因此,这是我为使它在产品中工作和开发的工作所做的:
在forge.config.js
out/myproject/resources
文件夹。
packagerConfig: {
asar: true,
// prisma extra resources must be declared here
extraResource: [
"./prisma/app.db",
"./node_modules/.prisma",
"./node_modules/@prisma"
]
}
期间进行配置如何配置如何运行
npm exec prisma migrate dev
in
webpack.rules.js
将您的Prisma添加到排除规则中。这将防止WebPack包装您的Prisma文件并在
.webpack/
npm run start
创建您的Prisma客户端时,请确保在生产过程中检查并使用位于UserData中的DB文件,这是我为Helpers所做的工作
{
test: /[/\\]node_modules[/\\].+\.(m?js|node)$/,
parser: { amd: false },
// https://github.com/prisma/prisma/issues/12627
// fix for prisma with electron
exclude: /\.prisma/,
use: {
loader: '@vercel/webpack-asset-relocator-loader',
options: {
outputAssetBase: 'native_modules',
},
},
},
如何在电子中使用Electron-Forge添加电子生产中的额外资源文件
https://github.com/tasinishmam/prisma-electron-test/blob/master/package.json
https://github.com/prisma/prisma/issues/12627