https://dev.classmethod.jp/articles/bigquery-javascript-udf/

$ nodenv install -l
$ nodenv install 21.6.1
$ node --version
v21.6.1
$ npm init --yes
$ npm install "@google-cloud/storage"
$ npm install -D webpack webpack-cli
$ npm install $(npm run-script build | grep "install" | sort | uniq | awk -F"'" '{print $2}')
$ npm run-script build | grep "add a fallback" | sed -E 's/^.+\{(.+) \}.+$/\1,/' | sort | uniq
$ cat webpack.config.js
var path = require('path');

module.exports = {
    target: 'node',
    entry: './node_modules/@google-cloud/storage/build/esm/src/index.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'google_cloud_storage.js',
        library: 'google_cloud_storage',
        libraryTarget: 'var',
    },
    mode: 'production',
    resolve: {
	    fallback: {
	      "fs": false,
	      "net": false,
	      "tls": false,
	      "child_process": false,
	      "url": false,
	      "util": false,
	      "assert": false,
	      "buffer": false,
	      "crypto": require.resolve("crypto-browserify"),
	      "http": require.resolve("stream-http"),
	      "https": require.resolve("https-browserify"),
	      "os": require.resolve("os-browserify/browser"),
	      "path": require.resolve("path-browserify"),
	      "querystring": require.resolve("querystring-es3"),
	      "stream": require.resolve("stream-browserify"),
	      "zlib": require.resolve("browserify-zlib"),
	    }
		}
	};
$ gsutil mb 'gs://hogehoge-bqudf-lib'
$ gsutil cp dist/google_cloud_storage.js gs://hogehoge-bqudf-lib/

結局うまく動かせず。UDF のコードはライブラリ含めて 1M 上限のため実行できない。

その他なんとなくわかったこと

結論