next-bun-docker
Version:
Next.js plugin to fix Bun + Docker build issues with webpack and TypeScript path aliases
118 lines (115 loc) • 3.93 kB
JavaScript
var __create = Object.create;
var __getProtoOf = Object.getPrototypeOf;
var __defProp = Object.defineProperty;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __toESM = (mod, isNodeMode, target) => {
target = mod != null ? __create(__getProtoOf(mod)) : {};
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
for (let key of __getOwnPropNames(mod))
if (!__hasOwnProp.call(to, key))
__defProp(to, key, {
get: () => mod[key],
enumerable: true
});
return to;
};
var __moduleCache = /* @__PURE__ */ new WeakMap;
var __toCommonJS = (from) => {
var entry = __moduleCache.get(from), desc;
if (entry)
return entry;
entry = __defProp({}, "__esModule", { value: true });
if (from && typeof from === "object" || typeof from === "function")
__getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
}));
__moduleCache.set(from, entry);
return entry;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, {
get: all[name],
enumerable: true,
configurable: true,
set: (newValue) => all[name] = () => newValue
});
};
// src/index.ts
var exports_src = {};
__export(exports_src, {
withBunDocker: () => withBunDocker,
default: () => src_default
});
module.exports = __toCommonJS(exports_src);
var path = __toESM(require("path"));
function isBunEnvironment() {
return process.env.DOCKER_BUILD === "true" || process.env.BUN_RUNTIME === "true" || process.argv[0]?.includes("bun") || !!process.versions?.bun || false;
}
function withBunDocker(nextConfig = {}, options = {}) {
const {
aliases = {},
debug = false,
detectBun = isBunEnvironment
} = options;
return {
...nextConfig,
webpack: (config, context) => {
if (typeof nextConfig.webpack === "function") {
config = nextConfig.webpack(config, context);
}
if (detectBun()) {
if (debug) {
console.log("\uD83D\uDD27 next-bun-docker: Applying Bun+Docker fixes to webpack config");
}
config.resolve = config.resolve || {};
config.resolve.symlinks = false;
const { dir, isServer } = context;
const defaultAliases = {
"@": path.resolve(dir, "src"),
"@/components": path.resolve(dir, "src/components"),
"@/lib": path.resolve(dir, "src/lib"),
"@/utils": path.resolve(dir, "src/utils"),
"@/styles": path.resolve(dir, "src/styles"),
"@/types": path.resolve(dir, "src/types"),
"@/hooks": path.resolve(dir, "src/hooks"),
"@/app": path.resolve(dir, "src/app"),
"@/pages": path.resolve(dir, "src/pages")
};
config.resolve.alias = {
...config.resolve.alias,
...defaultAliases,
...aliases
};
config.resolve.extensions = config.resolve.extensions || [
".ts",
".tsx",
".js",
".jsx",
".json"
];
if (!isServer) {
config.resolve.fallback = {
...config.resolve.fallback,
fs: false,
path: false,
crypto: false
};
}
if (debug) {
console.log("\uD83D\uDD27 next-bun-docker: Webpack config updated successfully");
console.log(" - Symlinks disabled");
console.log(" - Path aliases configured");
console.log(" - Module resolution optimized");
}
}
return config;
}
};
}
var src_default = withBunDocker;
//# debugId=5A2B5FCBAAEA261E64756E2164756E21
//# sourceMappingURL=index.js.map