Merge pull request 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
lib/common
spec

View file

@ -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) {

View file

@ -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')
})
})