43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
|
|
|
|
/* eslint-disable */
|
|
const withLess = require("@zeit/next-less");
|
|
const lessToJS = require("less-vars-to-js");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
|
|
const themeVariables = lessToJS(
|
|
fs.readFileSync(path.resolve(__dirname, "./styles/theme.less"), "utf8")
|
|
);
|
|
|
|
module.exports = withLess({
|
|
lessLoaderOptions: {
|
|
javascriptEnabled: true,
|
|
modifyVars: themeVariables,
|
|
},
|
|
webpack: (config, { isServer }) => {
|
|
if (isServer) {
|
|
const antStyles = /antd\/.*?\/style.*?/;
|
|
const origExternals = [...config.externals];
|
|
config.externals = [
|
|
(context, request, callback) => {
|
|
if (request.match(antStyles)) return callback();
|
|
if (typeof origExternals[0] === "function") {
|
|
origExternals[0](context, request, callback);
|
|
} else {
|
|
callback();
|
|
}
|
|
},
|
|
...(typeof origExternals[0] === "function" ? [] : origExternals)
|
|
];
|
|
|
|
config.module.rules.unshift({
|
|
test: antStyles,
|
|
use: "null-loader"
|
|
});
|
|
}
|
|
return config;
|
|
}
|
|
});
|
|
|