我有一个Angular应用程序,我需要为它创建一个MSI安装程序。我已经成功创建了一个电子应用程序(
npm run electron
),但当我尝试创建安装程序时,会出现以下错误:
错误LGHT0263:“C:。。。\release\win unpacked\resources\app.asar'是
太大,文件大小必须小于2147483648。
我按以下顺序运行命令:
-
npm运行电子
-->运行电子应用程序本身,看看它是否有效(在执行下一步操作之前,我关闭了应用程序)
-
npm run tsc
-
npm run step2
-
npm run electron:build
我认为我在electronic-builder.json中包含了太多文件,但我不确定我可以删除什么,以及运行应用程序需要什么,因为这是我第一次使用electronic-and-electronic-bbuilder。
当我设置
"asar": false
在electron-builder.json中,MSI安装程序已创建,但我收到警告
asar usage is disabled â this is strongly not recommended
,它需要花费很长时间(即30分钟)来构建,并且MSI数据包的大小几乎为1.5GB。
有人知道我如何尽快缩小尺寸吗?
这是我的项目结构:
|- dist
|- electron
|- main.ts
|- package.json
|- node_modules
|- release
|- src
|- all angular source code
|- angular.json
|- electron-builder.json
|- package.json
|- tsconfig.json
|- tsconfig.serve.json
package.json中的脚本:
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"electron": "ng build --configuration electron && electron .",
"tsc": "tsc -p tsconfig.serve.json",
"step2": "ng build --base-href ./ --configuration electron",
"electron:build": "electron-builder build --publish=never"
}
electro-builder.json:
{"asar": true,
"directories": {
"output": "release/"
},
"files": [
{
"from": "dist",
"filter": ["**/*"]
},
{
"from": "electron",
"filter": ["**/*"]
},
{
"from": "src",
"filter": ["**/*"]
},
"!**/*.ts",
"!*.map",
"!package.json",
"!package-lock.json",
"!node_modules/**",
"!.angular/**",
"!.vscode/**",
"!cypress/**",
"!release/**"
],
"win": {
"icon": "offline-test.ico",
"target": [
"msi"
]
}
}
tsconfig.server.json:
{
"compilerOptions": {
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"target": "es2015",
"types": [
"node"
],
"lib": [
"es2017",
"es2016",
"es2015",
"dom"
]
},
"files": [
"electron/main.ts"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
我看了看
this question
,但我想我正在排除MSI文件所在的目录,所以我不确定还能排除什么。