Модуль не найден: ошибка: не удается разрешить 'ReleaseManagement / Core / RestClient' - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь использовать Typescript с Webpack (и React) для разработки расширения Azure DevOps для суммирования данных сборки и выпуска.Для разработки расширения требуется пакет vss-web-extension-sdk для взаимодействия с DevOps Azure.

Когда я запускаю команду «webpack», он как-то не может разрешить модули ReleaseManagement (например, «ReleaseManagement»)./ Core / Contracts ") из пакета, в то время как он может правильно разрешать модули сборки (например," TFS / Build / RestClient ").

Модуль не найден: Ошибка: не удается разрешить 'ReleaseManagement /Core / RestClient '

Что я нахожу странным, так это то, что если вместо этого я буду использовать команду "tsc", проблем не будет.

Вот код и конфигурация, которые я сделал.

tsconfig.json

{
"compilerOptions": {
    "module": "amd",
    "moduleResolution": "node",
    "target": "es5",
    "outDir": "dist",
    "lib": [
        "es5",
        "es6",
        "dom"
    ],
    "importHelpers": true,
    "jsx": "react",
    "noEmitHelpers": true,
    "rootDir": "src/",
    "skipLibCheck": true,
    "types": [
        "vss-web-extension-sdk"
    ],
    "sourceMap": true
},
"include": [
    "src/**/*.ts",
    "src/**/*.tsx"
]

}

webpack.config.js

    const path = require("path");

module.exports = {
    context: __dirname,
    entry: "./" + path.relative(process.cwd(), path.join(__dirname, "src", "index.tsx")),
    output: {
        filename: path.relative(process.cwd(), path.join(__dirname, "index.js")),
        libraryTarget: "amd",
    },
    resolve: {
        extensions: [".ts", ".tsx", ".js", ".json"]
    },

    module: {
        rules: [
            { test: /\.tsx?$/, loader: "ts-loader" },
            { enforce: "pre", test: /\.js$/, loader: "source-map-loader" }
        ]
    },

    externals: [
        {
            react: true,
            "react-dom": true,
        },
        /^TFS\//,
        /^VSS\//,
        /^Favorites\//,
    ]
};

Мой основной файл TSX (тестовый возврат и пустой тег div.)

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { Test } from './Test';

import * as BuildClient from "TFS/Build/RestClient"
import * as RMO_Client from "ReleaseManagement/Core/RestClient";

var rm_client = RMO_Client.getClient();
var build_client =BuildClient.getClient();

ReactDOM.render(<Test />, document.getElementById('extensionFrame'));
...