Я использую веб-пакет с машинописью с конфигом сам по себе в машинописи. Инструкция здесь
В моем корне у меня есть webpack.config.base.ts
import webpack from "webpack";
const getConfig = ( appDir: string, distDir: string, env: any, args: any ): webpack.Configuration => {
const config: webpack.Configuration = {
entry: {
},
output: {
},
resolve: {
plugins: [
],
extensions: [".ts", ".tsx", ".js"]
},
devtool: "source-map",
module: {
rules: [
]
},
plugins: [
]
};
return config;
};
module.exports = getConfig;
У меня есть два проекта, каждый со своим webpack.config.ts
import webpack from "webpack";
import * as path from 'path';
const getConfig = require("../../webpack.config.base");
const appDir = __dirname;
const distDir = path.resolve(__dirname, "../AppOne.Web/wwwroot");
const getConfigFactory = (env: any, args: any): webpack.Configuration => getConfig(appDir, distDir, env, args);
module.exports = getConfigFactory;
Это все работает абсолютно нормально. Вот полный пример этого фабричного getConfig = () => {}
стиля.
Моя проблема, когда я пытаюсь измениться, чтобы изменить
const getConfig = require("../../webpack.config.base");
К импорту es6. Это даже предусмотрено в качестве предложения кодом VS.
![enter image description here](https://i.stack.imgur.com/Aoc8S.png)
Когда я применяю это изменение, я получаю
![enter image description here](https://i.stack.imgur.com/NhhqE.png)
Вот мой tsconfig.json
У меня уже включен [allowSyntheticDefaultImports][5]
. Предложено здесь .
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"moduleResolution": "node",
"jsx": "react",
"experimentalDecorators": true,
"lib": [
"es2015",
"dom"
],
"target": "es5",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": true,
"typeRoots": [
"./node_modules/@types/",
"./types/"
],
"baseUrl": ".",
"paths": { }
},
"include": [
"./src/**/*.ts",
"./src/**/*.tsx"
]
}
Но я все равно добавил export default getConfig;
... и npm run build
снова. Это все еще терпит неудачу.
const getConfigFactory = (env: any, args: any): webpack.Configuration => getConfig(appDir, distDir, env, args);
^
TypeError: webpack_config_base_1.default is not a function
Моя последняя попытка перед тем, как врезаться в стол, была смена
import getConfig from "../../webpack.config.base";
import * as base from "../../webpack.config.base";
Удалите export default getConfig;
в webpack.config.base.ts
и экспортируйте const getConfig
напрямую как export const getConfig
. Но в этот момент какой смысл module.exports = getConfig
. Не говоря уже о том, что это не кровавая работа (та же проблема, что и раньше)
const getConfigFactory = (env: any, args: any): webpack.Configuration => base.getConfig(appDir, distDir, env, args);
^
TypeError: base.getConfig is not a function
Что мне здесь не хватает? Почему я не могу просто заменить const getConfig = require("../../webpack.config.base");
на import getConfig from "../../webpack.config.base"
PS.
Вот мой "scripts"
для запуска этого
"build:appone": "webpack --mode=development --config ./src/AppOne.App/webpack.config.ts",
"build:apptwo": "webpack --mode=development --config ./src/AppTwo.App/webpack.config.ts",