From 10df01907526e20ef6c72544a1b9578fd341d41f Mon Sep 17 00:00:00 2001 From: Jack Teng Date: Mon, 18 Jun 2018 16:09:11 -0700 Subject: [PATCH 1/2] fix: can't load module error when app is packaged due to change in node.js(https://github.com/nodejs/node/issues/17076) internalModuleReadFile has been renamed to internalModuleReadJSON, and in vendor/node/lib/internal/modules/cjs/loader.js it will call internalModuleReadJSON and result in can't read the package.json file. --- lib/common/asar.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/common/asar.js b/lib/common/asar.js index 1b9a993a2e67..20385da13596 100644 --- a/lib/common/asar.js +++ b/lib/common/asar.js @@ -590,11 +590,11 @@ return files } - const {internalModuleReadFile} = process.binding('fs') - process.binding('fs').internalModuleReadFile = function (p) { + const {internalModuleReadJSON} = process.binding('fs') + process.binding('fs').internalModuleReadJSON = function (p) { const [isAsar, asarPath, filePath] = splitPath(p) if (!isAsar) { - return internalModuleReadFile(p) + return internalModuleReadJSON(p) } const archive = getOrCreateArchive(asarPath) if (!archive) { From 3044607746e97b91c211dca0b562505c6547d4de Mon Sep 17 00:00:00 2001 From: Jack Teng Date: Tue, 19 Jun 2018 09:38:42 -0700 Subject: [PATCH 2/2] spec: fix asar spec due to change in node.js node.js rename the internalModuleReadFile to internalModuleReadJSON change spec to reflect this change --- spec/asar-spec.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spec/asar-spec.js b/spec/asar-spec.js index f87554f32e26..131619d5f219 100644 --- a/spec/asar-spec.js +++ b/spec/asar-spec.js @@ -682,21 +682,21 @@ describe('asar package', function () { }) }) - describe('internalModuleReadFile', function () { - var internalModuleReadFile = process.binding('fs').internalModuleReadFile + describe('internalModuleReadJSON', function () { + var internalModuleReadJSON = process.binding('fs').internalModuleReadJSON it('read a normal file', function () { var file1 = path.join(fixtures, 'asar', 'a.asar', 'file1') - assert.equal(internalModuleReadFile(file1).toString().trim(), 'file1') + assert.equal(internalModuleReadJSON(file1).toString().trim(), 'file1') var file2 = path.join(fixtures, 'asar', 'a.asar', 'file2') - assert.equal(internalModuleReadFile(file2).toString().trim(), 'file2') + assert.equal(internalModuleReadJSON(file2).toString().trim(), 'file2') var file3 = path.join(fixtures, 'asar', 'a.asar', 'file3') - assert.equal(internalModuleReadFile(file3).toString().trim(), 'file3') + assert.equal(internalModuleReadJSON(file3).toString().trim(), 'file3') }) it('reads a normal file with unpacked files', function () { var p = path.join(fixtures, 'asar', 'unpack.asar', 'a.txt') - assert.equal(internalModuleReadFile(p).toString().trim(), 'a') + assert.equal(internalModuleReadJSON(p).toString().trim(), 'a') }) })