我使用的是打字稿的WebPack与配置其自身打字稿。 说明这里
在我的根我有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代码的建议提供。
当我申请这个变化我得到
这里是我的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",