サーバーの画像コレクションでnpm pkg Sharpを使用して imgs を変換しました。サーバーコードは次のようになります。
import * as sharp from 'sharp';
export const Pictures = new Mongo.Collection('pictures');
export const PicturesStore = new UploadFS.store.GridFS({
collection: Pictures,
name: 'pictures',
filter: new UploadFS.Filter({
contentTypes: [ 'image/*' ],
}),
transformWrite(from, to, fileId, file) {
const transform = sharp().resize(300, 300).min().crop().toFormat('jpeg', { quality });
from.pipe(transform).pipe(to);
},
})
ただし、クライアントでは、エラーが報告されます。
cannot load native .node modules on the client.
クライアントは実際にはシャープな機能を実行しません。PicturesStore のみを参照し、Pictures の minimongo コレクションも作成します。
別のプロジェクトでは、クライアントで webpack を使用しています。空のダミー オブジェクトでシャープに解決するように構成できます。
しかし、空のダミー Sharp オブジェクトを作成して、webpack なしで Meteor クライアントに Sharp モジュールをロードしないようにする方法は?