与Typescript热重新加载IIS网络服务器

Ogg*_*las 5 c# asp.net iis typescript reactjs

我想在使用C#Web Api后端在TypeScript中开发我的React应用程序时使用热重新加载.我使用.Net框架而不是Core,所以我需要使用IIS或IIS Express.我可以使用webpack dev server没有问题的前端热重新加载,但后来我无法访问API资源.我能做到吗?

Ogg*_*las 7

发现使用它的溶液webpack dev server作为反向代理的IIS.

NPM:

npm install --save react-hot-loader@next

npm install webpack-dev-server --save-dev
Run Code Online (Sandbox Code Playgroud)

webpack.config.js,代理是IIS运行的地方:

var webpack = require('webpack');
var path = require("path");
var proxy = 'localhost:61299';

module.exports = {
    entry: [
        // activate HMR for React
        'react-hot-loader/patch',

        // the entry point of our app
        './Scripts/src/index.tsx',
    ],
    //entry: "./Scripts/src/index.tsx",
    output: {
        filename: "./Scripts/dist/bundle.js",
    },

    // Enable sourcemaps for debugging webpack's output.
    devtool: "source-map",

    resolve: {
        // Add '.ts' and '.tsx' as resolvable extensions.
        extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
    },

    module: {
        loaders: [
            // All files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'.
            //{ test: /\.tsx?$/, loader: "ts-loader" }
            { test: /\.tsx?$/, loader: ['react-hot-loader/webpack', 'ts-loader'] }
        ]
    },

    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        // enable HMR globally

        new webpack.NamedModulesPlugin(),
        // prints more readable module names in the browser console on HMR updates
    ],

    devServer: {
        proxy: {
            '*': {
                target: 'http://' + proxy,
            }
        },
        port: 8080,
        host: '0.0.0.0',
        hot: true,
    },
}
Run Code Online (Sandbox Code Playgroud)

然后,我可以使用项目根文件夹中的此命令启动Web服务器:node_modules\.bin\webpack-dev-server.如果我然后访问http://localhost:8080/我有热重新加载,我仍然可以使用C#web api,因为它将在" http:// localhost:61299 / " 代理IIS Express