prettier-java
prettier-java copied to clipboard
strict mode: Uncaught ReferenceError: process is not defined
https://github.com/jhipster/prettier-java/blob/main/packages/java-parser/src/utils.js
"use strict";
function getSkipValidations() {
return (
(process && // (not every runtime has a global `process` object
process.env &&
process.env["prettier-java-development-mode"] === "enabled") === false
);
}
module.exports = {
getSkipValidations
};
in browser env and strict mode
, will throw error
you can fix it by globalThis.process = globalThis.process
"use strict";
globalThis.process = globalThis.process;
function getSkipValidations() {
return (
(process && // (not every runtime has a global `process` object
process.env &&
process.env["prettier-java-development-mode"] === "enabled") === false
);
}
module.exports = {
getSkipValidations
};
prettier-plugin-java/v1.6.2.umd.js
com form https://github.com/lisonge/pkg-cdn.git
fix by custom rollup plugin
{
name: 'fix_process',
transform(code, id) {
if (
id.endsWith('/node_modules/java-parser/src/utils.js') &&
code.includes('process')
) {
return {
code: [code, ';globalThis.process = globalThis.process;'].join(
'\n'
),
map: null,
};
}
return;
},
}
@lisonge globalThis.process = globalThis.process 可以修复的原理是?
@lisonge globalThis.process = globalThis.process 可以修复的原理是?
浏览器环境没有 process
全局变量/属性,严格模式
下使用未声明的变量/属性会报未定义错误
globalThis.process = globalThis.process
的意思是声明 process
为全局变量/属性,让 process
变成已定义,此时再在函数内使用 process
则不会报未定义错误
Having the same issue here