#node.js #polyfills #webpack-5 #cbor
Вопрос:
Я должен декодировать CBOR
закодированный массив с помощью модуля cbor
узла.
Когда я запускаю свою команду:
const decodedData = base45.decode(greenpassBody);
const output = pako.inflate(decodedData);
const results = cbor.decodeAllSync(output); // this line
эта ошибка срабатывает:
_stream_readable.js:529 Uncaught ReferenceError: process is not defined
at emitReadable (_stream_readable.js:529)
at addChunk (_stream_readable.js:303)
at readableAddChunk (_stream_readable.js:280)
at NoFilter.Readable.push (_stream_readable.js:241)
at NoFilter.Transform.push (_stream_transform.js:139)
at NoFilter._transform (index.js:220)
at NoFilter.Transform._read (_stream_transform.js:177)
at NoFilter.Transform._write (_stream_transform.js:164)
at doWrite (_stream_writable.js:409)
at writeOrBuffer (_stream_writable.js:398)
Вызвано stram-browserify
заполнением, необходимым для использования всех этих пакетов в моем веб-приложении.
Как я читал в Интернете, я попытался установить process
модуль в свой package.json
, а затем в свой webpack
конфигурационный файл, который я попробовал несколькими способами:
fallback: {
stream: require.resolve('stream-browserify'),
util: require.resolve('util/'),
zlib: require.resolve('browserify-zlib'),
assert: require.resolve('assert/'),
crypto: require.resolve('crypto-browserify'),
fs: require.resolve('browserify-fs'),
path: require.resolve('path-browserify'),
process: require.resolve('process/browser'), // <- this
}
alias: {
'jquery-ui': path.resolve(__dirname, "./node_modules/jquery-ui"),
'owl.carousel': path.resolve(__dirname, "./node_modules/owl.carousel"),
modernizr$: path.resolve(__dirname, "./modernizrrc.js"),
WOW: 'wowjs',
process: "process/browser", // 1st try
process: path.resolve(__dirname, "./node_modules/process/browser.js"), // 2nd try
},
plugins: [
// ...
new webpack.DefinePlugin({
process: "process/browser"
"process.env": {
ASSET_PATH: JSON.stringify(ASSET_PATH),
NODE_ENV: JSON.stringify("development"),
ENV: JSON.stringify("development"),
},
}),
С этой DefinePlugin
попыткой ошибка изменилась, говорилось browser is not defined
в нем .
Кто-нибудь знает, как правильно заполнить этот модуль или есть ли другие способы использования CBOR
модуля?
Большое спасибо
Ответ №1:
решенный
проблема заключалась в том, что process
плагин должен быть предоставлен, а не определен:
это
new webpack.ProvidePlugin({
process: 'process/browser',
})
нет
new webpack.DefinePlugin({
process: 'process/browser',
}),