由于Buffer 在网络上不可用,您需要对其进行填充。
由于现代 ember 使用 webpack,polyfilling Buffer 有据可查。这是开箱即用的list of plugins webpack。
如果你只使用 ember-auto-import,在你的 ember-cli-build.js 中,你会像这样提供你的 webpack 配置:
// ember-cli-build.js
// ...
let app = new EmberApp(defaults, {
// ...
autoImport: {
webpack: {
plugins: [
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
}),
],
}
}
});
或者如果你使用 embroider,你可以这样配置 webpack:
// ember-cli-build.js
const { Webpack } = require('@embroider/webpack');
return require('@embroider/compat').compatBuild(app, Webpack, {
packagerOptions: {
webpackConfig: {
plugins: [
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
}),
],
}
}
});