-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Description
/** @type {import('next').NextConfig} */
import { error } from "node:console";
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
import fastSafeStringify from "fast-safe-stringify";
// 不知道为什么,这里必须加上.js
import {
PHASE_DEVELOPMENT_SERVER,
PHASE_PRODUCTION_BUILD,
} from "next/dist/shared/lib/constants.js";
import CopyWebpackPlugin from "copy-webpack-plugin";
import webpack from "webpack";
import { merge } from "webpack-merge"; // 不同于lodash.merge,不会更改源对象,且数组会智能合并
import HtmlWebpackPlugin from 'html-webpack-plugin'
import firebase_config from "./firebase.config.mjs";
import util from "node:util";
import withPlugins from "next-compose-plugins";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
console.log(process.env.NODE_ENV);
const nextConfig = (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
reactStrictMode: false,
output: "export",
distDir: "dist",
images: {
unoptimized: true,
},
sassOptions: {
additionalData: `@import "@/scss/variable.scss";`,
},
webpack: (
config,
{ buildId, dev, isServer, defaultLoaders, nextRuntime, webpack }
) => {
if (phase === PHASE_DEVELOPMENT_SERVER) {
const configStr = util.inspect(config.module.rules, {
depth: null,
colors: false,
});
console.log(config.module.rules);
fs.writeFileSync("webpack.config.output.txt", configStr);
config = merge(config, {
plugins: [
new webpack.DefinePlugin({
tk_Firebase_Config: JSON.stringify(
firebase_config.dev.tk_Firebase_Config
),
cb_Firebase_config: JSON.stringify(
firebase_config.dev.cb_Firebase_config
),
}),
],
});
} else if (phase === PHASE_PRODUCTION_BUILD) {
config = merge(config, {
plugins: [
new webpack.DefinePlugin({
tk_Firebase_Config: JSON.stringify(
firebase_config.prod.tk_Firebase_Config
),
cb_Firebase_config: JSON.stringify(
firebase_config.prod.cb_Firebase_config
),
}),
],
});
}
const originalHtmlWebpackPlugin = config.plugins.find(
(plugin) => plugin instanceof HtmlWebpackPlugin
);
// console.log('originalHtmlWebpackPlugin', originalHtmlWebpackPlugin)
// console.log(config.plugins)
return merge(config, {
// plugins: [
// new webpack.ProvidePlugin({
// // $: 'jquery',
// // Q: path.resolve(__dirname, 'public/js/q.js')
// }),
// ]
});
},
};
return withPlugins(
[
new webpack.DefinePlugin({
abcd: "hello with plugins",
}),
],
nextConfig
);
// return nextConfig;
};
export default nextConfig;An error occurs when running the browser.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
