Отладка Angular 2 в Visual Studio Slow с помощью веб-пакета

Я использую обновление 3 для Visual Studio 2015, ASP.Net MVC 4.6.1, Angular 2.4.6, Webpack 2.2.1 и расширение обозревателя задач веб-пакета. Если я запускаю Visual Studio без отладки, все работает нормально, но если я пытаюсь запустить Visual Studio в режиме отладки, ему потребуется несколько минут для загрузки веб-страницы. Глядя в Visual Studio, он пытается загрузить исходные карты для Angular, и каждая занимает пару секунд.

Кажется, проблема в том, что плагин Task Runner Explorer выполняет команду: webpack -d --watch --color, который говорит ему всегда генерировать исходные карты для всего. Не похоже, что есть способ изменить плагин, чтобы не запускать ключ "-d". В моем конфигурационном файле он настроен на генерацию только исходных карт для моего кода. Но похоже, что командная строка всегда перезаписывает то, что в файле конфигурации.

Кто-нибудь может это исправить?

tsconfig.json

{
"compileOnSave": true,
"compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es2015", "dom" ],
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  }
}

webpack.dev.js

var webpackMerge = require('webpack-merge');
var webpack = require('webpack');
var commonConfig = require('./webpack.common.js');

module.exports = webpackMerge(commonConfig, {

    output: {
        path: '\dist',
        publicPath: 'http://localhost:8080/',
        filename: '[name].js',
        sourceMapFilename: '[name].js.map',
        chunkFilename: '[id].chunk.js'
    },

    plugins: [
        new webpack.SourceMapDevToolPlugin({
            test: [/\.js$/, /\.ts$/],
            columns: false,
            filename: '[file].map',
            exclude: ['vendor.js', 'polyfills'],
            lineToLine: false,
            module: true,
            append: '\n//# sourceMappingURL=[url]'
        })
    ],

    devServer: {
        historyApiFallback: true,
        stats: 'minimal'
    }
});

webpack.common.js

"use strict";

var webpack = require('webpack');
var helpers = require('./helpers.js');
var path = require('path');

module.exports = {
    entry: {
        app: "./app/main.ts",
        vendor: "./app/config/vendor.ts",
        polyfills: "./app/config/polyfills.ts"
    },
    resolve: {
        extensions: ['.ts', '.js']
    },
    devServer: {
        contentBase: ".",
        host: "localhost",
        port: 9000
    },
    module: {
        rules: [
        {
            test: /\.ts$/,
            loaders: ['awesome-typescript-loader',
                'angular2-template-loader',
                'tslint-loader']
        },
        {
            test: /\.html$/,
            loader: 'raw-loader'
        },
        {
            test: /\.css$/,
            include: helpers.root('app'),
            loaders: 'style-loader!css-loader'
        },
        {
            test: /\.js$/,
            use: ["source-map-loader"], /*strips off extra # sourceMappingURL= which were in node_modules*/
            enforce: "pre",
            exclude: [
              // these packages have problems with their sourcemaps
              path.resolve('./node_modules/ng2-interceptors')
            ]
        }
        ]
    },
    plugins: [
        // Workaround for angular/angular#11580
        new webpack.ContextReplacementPlugin(
        // The (\\|\/) piece accounts for path separators in *nix and Windows
        /angular(\\|\/)core(\\|\/)(esm(\\|\/)src|src)(\\|\/)linker/,
        helpers.root('./'), // location of your src
        {} // a map of your routes
        ),
        new webpack.optimize.CommonsChunkPlugin({
            name: ['app', 'vendor', 'polyfills']
        })
    ]

}

1 ответ

Решение

Проблема закончилась тем, что было столько исходных карт, вызванных из всех файлов Vendor и Polyfill, что VS так долго загружался. Как только я сказал ему больше не генерировать исходные карты для тех, кто начал работать намного быстрее.

Другие вопросы по тегам