Skip to content

Fix build: 需要添加在 build.mjs 中添加 external: ['cloudflare:sockets'] #26

@laike9m

Description

@laike9m

Hi, 需要添加在 build.mjs 中添加 external: ['cloudflare:sockets'] 才能正常 build, 否则会出现下面错误

✘ [ERROR] Could not resolve "cloudflare:sockets"
    src/lib/bilibili/grpc_helper.js:7:24:
      7 │ import { connect } from 'cloudflare:sockets';~~~~~~~~~~~~~~~~~~~~

修改完整的 build.mjs 如下

import esbuild from 'esbuild';
import fs from 'fs/promises';
import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill';

function buildWorker({ entry, out, debug, external } = {}) {
	return esbuild.build({
		plugins: [NodeModulesPolyfillPlugin()],
		platform: 'browser',
		conditions: ['worker', 'browser'],
		entryPoints: [entry],
		sourcemap: true,
		outfile: out,
		external,
		logLevel: 'warning',
		format: 'esm',
		target: 'es2022',
		bundle: true,
		minify: !debug,
		define: {
			IS_CLOUDFLARE_WORKER: 'true',
		},
		loader: {
			'.html': 'text',
			'.css': 'text',
			'.txt': 'text',
		},
		metafile: true,
		legalComments: 'external',
	});
}

let result = await buildWorker({
	entry: './src/worker.js',
	out: './dist/worker.js',
	debug: false,
	external: ['cloudflare:sockets']   // <--- 添加这一行
});

if (result.metafile) {
	// use https://esbuild.github.io/analyze/ to analyses
	await fs.writeFile('./dist/metafile.json', JSON.stringify(result.metafile));
}

懒得 fork + PR 了

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions