Отладка кода Visual Studio с помощью AngularJS

Я хочу отладить свое приложение Angular с новым кодом Visual Studio, но, похоже, есть проблема с кодом Angular и Visual Studio..

- Это мой старт.в JSON:

{
    "version": "0.1.0",
    // List of configurations. Add new configurations or edit existing ones.  
    // ONLY "node" and "mono" are supported, change "type" to switch.
    "configurations": [
        {
            // Name of configuration; appears in the launch configuration drop down menu.
            "name": "Manager",
            // Type of configuration. Possible values: "node", "mono".
            "type": "node",
            // Workspace relative or absolute path to the program.
            "program": "/Volumes/Transcend/WorkArea/Manager/app/app.js",
            // Automatically stop program after launch.
            "stopOnEntry": true,
            // Command line arguments passed to the program.
            "args": [],
            // Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace.
            "cwd": ".",
            // Workspace relative or absolute path to the runtime executable to be used. Default is the runtime executable on the PATH.
            "runtimeExecutable": null,
            // Optional arguments passed to the runtime executable.
            "runtimeArguments": [],
            // Environment variables passed to the program.
            "env": { },
            // Use JavaScript source maps (if they exist).
            "sourceMaps": false
        }, 
        {
            "name": "Attach",
            "type": "node",
            // TCP/IP address. Default is "localhost".
            "address": "localhost",
            // Port to attach to.
            "port": 5858,
            "sourceMaps": false
        }
    ]
}

у меня есть эта ошибка, когда я пытаюсь отладить свое Угловое приложение,

ошибка:

ReferenceError: angular is not defined
    at Object.<anonymous> (/Volumes/Transcend/WorkArea/Manager/app/app.js:1:79)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain [as _onTimeout] (module.js:497:10)
    at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
MacBook-Pro:Manager user$ cd '/Volumes/Transcend/WorkArea/Manager';  'node' '--debug-brk=55539' '/Volumes/Transcend/WorkArea/Manager/app/app.js'
debugger listening on port 55539

Killed: 9

app.js

/// <reference path="../typings/angularjs/angular.d.ts"/>

var routerApp = angular.module('uiRouter', ['ui.router', 'uiRouter.dmvs']);

routerApp.config(function($stateProvider, $urlRouterProvider) {

    $urlRouterProvider.otherwise('/home');

    $stateProvider

        .state('home', {
            url: '/home',
            templateUrl: 'app/dmvs/partial-d.html',
            controller:'dController'
        })

});

3 ответов


хорошо, с помощью людей @code я получил его работу. Теперь я могу полностью отладить угловой клиент из IDE! Надеюсь, это поможет кому-то еще...

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

F1
ext Install Extensions
debug (then select Debugger For Chrome)

как только это установлено, я использовал инструкции MSFT, найденные здесь:

https://marketplace.visualstudio.com/items/msjsdiag.debugger-for-chrome

I только может получить метод "attach", поэтому я использую его с Chrome. Вот окончательная версия запуска.файл son я использую:

{
    "version": "0.2.0",
    "configurations": [
        {
            // Use this to get debug version of Chrome running:
            // /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
            "name": "Attach",
            "type": "chrome",
            "request": "attach",
            "port": 9222,
            "webRoot": "./www"
        }
    ]
}

кроме того, не забудьте запустить Chrome в режиме отладки с этим (для Mac):

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222

отличный редактор @code!

OBS: не забудьте убить все экземпляры Chrome, как указано здесь: https://github.com/Microsoft/vscode-chrome-debug/issues/111#issuecomment-189508090


у меня была аналогичная проблема, но мой проект также включал webpack, который привел к сбою вышеуказанных решений. После обхода интернета я нашел решение в потоке на github:

https://github.com/AngularClass/angular2-webpack-starter/issues/144#issuecomment-218721972

в любом случае, это то, что было сделано.

Примечание: перед запуском необходимо проверить наличие последней версии кода visual studio и также установили расширение под названием 'отладчик для Chrome ' в рамках VS кода.

во-первых, в './ config / webpack.разработка.js'

  • использовать => devtool:'source-map'
  • вместо => devtool:'дешево-модуль-источник-карта'

затем установите и используйте плагин write-file-webpack -:

  • npm установить --сохранить write-file-webpack-плагин

добавить плагин './ config / webpack.разработка.Яш', добавив:

  • const WriteFilePlugin = require ('write-file-webpack-plugin');

под плагинами Webpack вверху. Продолжайте добавлять:

  • новый WriteFilePlugin()

в список плагинов после Нового нового DefinePlugin(), я.е

plugins:[
    new DefinePlugin({....}),
    new WriteFilePlugin(),
    ....
]

это гарантирует, что исходные карты записываются на диск

наконец, моя запуск.json приведен ниже.

{
    "version": "0.2.0",
    "configurations": [{
        "name": "Launch Chrome against localhost, with sourcemaps",
        "type": "chrome",
        "request": "launch",
        "url": "http://localhost:3000/",
        "runtimeArgs": [
           "--user-data-dir",
           "--remote-debugging-port=9222"
        ],
        "sourceMaps": true,
        "diagnosticLogging": true,
        "webRoot": "${workspaceRoot}",
        "userDataDir": "${workspaceRoot}/.vscode/chrome"
    },
    {
        "name": "Attach to Chrome, with sourcemaps",
        "type": "chrome",
        "request": "attach",
        "url": "http://localhost:3000/",
        "port": 9222,
        "sourceMaps": true,
        "diagnosticLogging": true,
        "webRoot": "${workspaceRoot}"
    }]
}

обратите внимание на отсутствие '/ dist/ ' в webroot. с помощью этой конфигурации, source-maps находятся внутри ./р/, но они указывают на ./ src/. vscode добавляет абсолютный путь к рабочей области, и правильно разрешает файл.


мы использовали Gulp.js и должен был добавить следующее:

"sourceMapPathOverrides": {
    "/source/*":"${workspaceRoot}/[directory where all of our mappings are located]/*"
 }

надеюсь, это поможет кому-то, кто пытается отладить приложение angularjs с кодом VS.

вот пример конфига:

{
"version": "0.2.0",
"configurations": [
    {
        "type": "chrome",
        "request": "launch",
        "name": "Launch Chrome",
        "url": "[your url here]",
        "webRoot": "${workspaceRoot}/[directory where your app is located]",
        "sourceMaps": true,        
        "sourceMapPathOverrides": {
            "/source/*":"${workspaceRoot}/[directory where your app is located and any additional .js files that are required by your app]/*"
        },        
        "userDataDir": "${workspaceRoot}/.vscode/chrome",
        "runtimeArgs": [
            "--disable-session-crashed-bubble"
        ]
    }
]
}