Отладка кода 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"
]
}
]
}