fix recognize environment is node when use browserfs #53

This commit is contained in:
Yi-Cyuan Chen
2026-07-18 18:01:00 +08:00
parent 62d740ca61
commit 6755b755cc
5 changed files with 28 additions and 6 deletions
+1
View File
@@ -6,6 +6,7 @@
### Fixed
- Fix uploading coverage to coveralls #52
- fix recognize environment is node when use browserfs #53
## v0.11.1 / 2025-05-24
### Fixed
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -29,7 +29,7 @@ var sha256$1 = {exports: {}};
WINDOW = false;
}
var WEB_WORKER = !WINDOW && typeof self === 'object';
var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node && process.type != 'renderer';
var NODE_JS = !root.JS_SHA256_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node && process.type != 'renderer';
if (NODE_JS) {
root = commonjsGlobal;
} else if (WEB_WORKER) {
+5 -4
View File
@@ -5,10 +5,11 @@ const disableNodeJs = {
name: 'disable-node-js',
transform(code, id) {
if (id.endsWith('/src/sha256.js')) {
return code.replace(
"var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node && process.type != 'renderer';",
'var NODE_JS = false;'
);
const nodeJsDeclaration = /^\s*var NODE_JS = .*;$/m;
if (!nodeJsDeclaration.test(code)) {
this.error('Could not find the NODE_JS declaration');
}
return code.replace(nodeJsDeclaration, ' var NODE_JS = false;');
}
}
};
+20
View File
@@ -36,6 +36,23 @@ function runWindowTest() {
unset();
}
function runBrowserWithProcessPolyfillTest() {
var Module = require('module');
var originalRequire = Module.prototype.require;
window = global;
Module.prototype.require = function (id) {
if (id === 'crypto' || id === 'buffer') {
throw new Error('Node.js module loaded in browser environment');
}
return originalRequire.apply(this, arguments);
};
try {
runCommonJsTest();
} finally {
Module.prototype.require = originalRequire;
}
}
// Node.js env
BUFFER = true;
runCommonJsTest();
@@ -44,6 +61,9 @@ runCommonJsTest();
JS_SHA256_NO_BUFFER_FROM = true
runCommonJsTest();
// browser env with a Node.js process polyfill
runBrowserWithProcessPolyfillTest();
// Webpack browser env
JS_SHA256_NO_NODE_JS = true;
window = global;