У меня есть монорепозиторий NodeJS проект, написанный на машинописном шрифте и компиляторе через webpack, ts-loader и tsconfigpaths, однако сгенерированные исходные карты не могут использоваться для VSCode.
Когда компилятор машинописного текста генерирует исходные карты, он ссылается на местоположение относительно исходного файла относительно каталога out:
dist / main. js .map
source: ["../src/main.ts"]
Однако когда webpack компилирует исходные карты, он относится к каталогу tsconfig. (обратите внимание на разницу: ./
против ../
)
dist / main. js .map
source: ["./src/main.ts"]
Я нашел способ решить эту проблему, но это не так. Я также изменил путь контекста веб-пакета к папке с исходными данными и поставил перед файлами ввода префикс ../
.
entry: "../src/main.ts",
context: path.resolve(__dirname, "dist"),
Ниже приведен файл конфигурации веб-пакета, который я сейчас использую и который генерирует неправильные исходные карты. Я ожидал, что SourceMapDevToolPlugin будет содержать некоторые свойства, такие как «контекст». Он содержит свойство fileContext, но, похоже, не влияет ни на что выводимое.
{
mode: "development",
target: "node",
entry: "./src/main.ts",
output: {
filename: "main.js",
path: path.resolve(__dirname, "dist"),
},
externals: [nodeExternals()],
module: {
rules: [
{
test: /\.ts$/,
exclude: /node_modules/,
loader: "ts-loader",
},
],
},
resolve: {
extensions: [".js", ".ts"],
plugins: [new TsconfigPathsPlugin()],
},
devtool: false,
plugins: [
new webpack.SourceMapDevToolPlugin({
filename: "[name].js.map",
moduleFilenameTemplate: "[resource-path]",
noSources: true,
module: true,
}),
],
}