提交 d1ec72c2 编写于 作者: B Benjamin Pasero

fix ASAR for windows

上级 38e76c02
......@@ -36,6 +36,7 @@ exports.assign = function assign(destination, source) {
exports.load = function (modulePaths, resultCallback, options) {
// @ts-ignore
const webFrame = require('electron').webFrame;
const path = require('path');
const args = exports.parseURLQueryArgs();
const configuration = JSON.parse(args['config'] || '{}') || {};
......@@ -55,7 +56,14 @@ exports.load = function (modulePaths, resultCallback, options) {
exports.assign(process.env, configuration.userEnv);
// Enable ASAR support
bootstrap.enableASARSupport();
// Note: On windows we have to be careful about the drive letter casing. If
// the drive letter case is lowercase, we convert it to uppercase. DO NOT
// CHANGE THIS logic or otherwise loading will fail in windows.
let nodeModulesPath = path.join(configuration.appRoot, 'node_modules');
if (process.platform === 'win32' && /[a-z]\:/.test(nodeModulesPath)) {
nodeModulesPath = nodeModulesPath.charAt(0).toUpperCase() + nodeModulesPath.substr(1); // Make drive letter uppercase
}
bootstrap.enableASARSupport(nodeModulesPath);
// disable pinch zoom & apply zoom level early to avoid glitches
const zoomLevel = configuration.zoomLevel;
......
......@@ -21,14 +21,16 @@ process.on('SIGPIPE', () => {
//#endregion
//#region Add support for using node_modules.asar
exports.enableASARSupport = function () {
/**
* @param {string=} nodeModulesPath
*/
exports.enableASARSupport = function (nodeModulesPath) {
// @ts-ignore
const Module = require('module');
const path = require('path');
let NODE_MODULES_PATH = path.join(__dirname, '../node_modules');
if (process.platform === 'win32' && /[a-z]\:/.test(NODE_MODULES_PATH)) {
NODE_MODULES_PATH = NODE_MODULES_PATH.charAt(0).toUpperCase() + NODE_MODULES_PATH.substr(1); // Make drive letter uppercase
let NODE_MODULES_PATH = nodeModulesPath;
if (!NODE_MODULES_PATH) {
NODE_MODULES_PATH = path.join(__dirname, '../node_modules');
}
const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册