@lark-project/cli
Version:
飞书项目插件开发工具
76 lines (75 loc) • 3.44 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getWebpackDevServerConfig = void 0;
const evalSourceMapMiddleware_1 = __importDefault(require("react-dev-utils/evalSourceMapMiddleware"));
// import noopServiceWorkerMiddleware from 'react-dev-utils/noopServiceWorkerMiddleware';
// import ignoredFiles from 'react-dev-utils/ignoredFiles';
const webpack_dev_server_1 = __importDefault(require("webpack-dev-server"));
// import redirectServedPath from 'react-dev-utils/redirectServedPathMiddleware';
const constants_1 = require("../../../constants");
const env_1 = require("../../../utils/env");
const self_signed_tls_cert_1 = require("../../../utils/self-signed-tls-cert");
const local_api_server_1 = require("./local-api-server");
async function getWebpackDevServerConfig() {
let localIp = env_1.env.originForDevServer;
// 当用户指定 devServer 返回资源的 origin,则不取本地 ipv4 地址
if (!localIp) {
localIp = await webpack_dev_server_1.default.getHostname('local-ip');
}
const localOrigin = `${env_1.env.disableHttps ? 'http' : 'https'}://${localIp}:${constants_1.DEV_SERVER_PORT}`;
let httpsOptions;
if (!env_1.env.disableHttps) {
const domains = [...new Set(['localhost', '127.0.0.1', localIp, env_1.env.host])];
httpsOptions = await (0, self_signed_tls_cert_1.createTempCert)(domains);
}
return {
port: constants_1.DEV_SERVER_PORT,
allowedHosts: 'all',
host: env_1.env.host,
compress: true,
hot: true,
static: false,
server: {
type: env_1.env.disableHttps ? undefined : 'https',
options: httpsOptions,
},
client: {
logging: 'verbose',
progress: true,
webSocketURL: {
hostname: env_1.env.sockHost,
pathname: env_1.env.sockPath,
port: env_1.env.sockPort,
protocol: 'wss',
},
overlay: {
errors: true,
warnings: false,
runtimeErrors: error => {
var _a, _b;
// 运行容器内通过 ResizeObserver 监听高度变化,会出发该警告,在 overlay 上忽略掉
// https://github.com/webpack/webpack-dev-server/releases/tag/v4.13.0
if (((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.includes('ResizeObserver loop')) ||
((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.includes('Script error'))) {
return false;
}
return true;
},
},
},
devMiddleware: {
index: true,
writeToDisk: false,
},
historyApiFallback: true,
setupMiddlewares: (middlewares, devServer) => {
(0, local_api_server_1.localAPIServer)(devServer, localOrigin);
devServer.app.use((0, evalSourceMapMiddleware_1.default)(devServer));
return middlewares;
},
};
}
exports.getWebpackDevServerConfig = getWebpackDevServerConfig;