Merge pull request #13283 from jack-teng1/fix-asar-pack-cant-find-module

fix: can't load module error when app is packaged
This commit is contained in:
John Kleinschmidt 2018-06-19 14:58:37 -04:00 committed by GitHub
commit fc12b5cab3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 9 deletions

View file

@ -590,11 +590,11 @@
return files return files
} }
const {internalModuleReadFile} = process.binding('fs') const {internalModuleReadJSON} = process.binding('fs')
process.binding('fs').internalModuleReadFile = function (p) { process.binding('fs').internalModuleReadJSON = function (p) {
const [isAsar, asarPath, filePath] = splitPath(p) const [isAsar, asarPath, filePath] = splitPath(p)
if (!isAsar) { if (!isAsar) {
return internalModuleReadFile(p) return internalModuleReadJSON(p)
} }
const archive = getOrCreateArchive(asarPath) const archive = getOrCreateArchive(asarPath)
if (!archive) { if (!archive) {

View file

@ -682,21 +682,21 @@ describe('asar package', function () {
}) })
}) })
describe('internalModuleReadFile', function () { describe('internalModuleReadJSON', function () {
var internalModuleReadFile = process.binding('fs').internalModuleReadFile var internalModuleReadJSON = process.binding('fs').internalModuleReadJSON
it('read a normal file', function () { it('read a normal file', function () {
var file1 = path.join(fixtures, 'asar', 'a.asar', 'file1') 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') 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') 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 () { it('reads a normal file with unpacked files', function () {
var p = path.join(fixtures, 'asar', 'unpack.asar', 'a.txt') var p = path.join(fixtures, 'asar', 'unpack.asar', 'a.txt')
assert.equal(internalModuleReadFile(p).toString().trim(), 'a') assert.equal(internalModuleReadJSON(p).toString().trim(), 'a')
}) })
}) })