JavaScript: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
Brian Wilson (talk | contribs)
Line 3: Line 3:
Currently I am using [[Microsoft Visual Studio]]. Visual Studio Code looks nice but I don't feel a need to develop new skills right now.
Currently I am using [[Microsoft Visual Studio]]. Visual Studio Code looks nice but I don't feel a need to develop new skills right now.
One IDE to rule them all and in the darkness bind them! Uh yeah.
One IDE to rule them all and in the darkness bind them! Uh yeah.
Note NOTE: [https://blogs.msdn.microsoft.com/webdev/2018/06/29/changes-to-script-debugging-in-visual-studio-15-7/ Change in 15.7]


I installed the Node.JS workload in VS
I installed the Node.JS workload in VS
Line 55: Line 53:


Refer to https://docs.microsoft.com/en-us/visualstudio/debugger/client-side-script-debugging
Refer to https://docs.microsoft.com/en-us/visualstudio/debugger/client-side-script-debugging
NOTE if you have 15.7 installed: [https://blogs.msdn.microsoft.com/webdev/2018/06/29/changes-to-script-debugging-in-visual-studio-15-7/ Change in 15.7]
I was able to change my default browser to IE and get that going. Good news.
Now I need to make it work in Chrome, this guy's page helped me:
[http://lostindetails.com/blog/post/JavaScript-debugging-in-VisualStudio-with-Chrome JavaScript debugging in VisualStudio with Chrome]
and [https://chromedevtools.github.io/devtools-protocol/ Chrome's page on the subject.]
# Start chrome in remote debug mode: chrome.exe --remote-debugging-port=9222
# Attach Visual Studio: "Debug" -> "Attach to Process..." -> select the chrome instance
Done.

Revision as of 22:39, 9 August 2018

Using Visual Studio

Currently I am using Microsoft Visual Studio. Visual Studio Code looks nice but I don't feel a need to develop new skills right now. One IDE to rule them all and in the darkness bind them! Uh yeah.

I installed the Node.JS workload in VS and installed the (standalone) portable Node.JS package.

Now in VS I can create a web Node.JS project, and I can run and test the complete app on my desktop so I don't need any access to a real web server.

In my VS project, I have to set the Node.exe path to C:\Users\bwilson\Portable\node-v8.11.3-win-x64\node.exe Once I do that it can find the other tools like npm too.

My typical server.js looks like this

var http = require('http');
var port = process.env.PORT || 1337;
var path = require('path'),
    fs = require('fs');
var base = 'C:/GeoModel/WebMaps/OpenlayersApp';

http.createServer(function (req, res) {
    
    pathname = base + req.url;
    if (req.url === '/') {
        pathname = base + '/index.html';
    }
    console.log(pathname);

    if (fs.exists(pathname)) {
        res.writeHead(404);
        res.write('Page not found 404\n');
        res.end();
    } else {
        res.setHeader('Content-Type', 'text/html');
        res.statusCode = 200;
        var file = fs.createReadStream(pathname);
        file.on("open", function () {
            file.pipe(res);
        });
    }

}).listen(port);

console.log("Server running on port ", port);

When I run the project, it launches server js and in turn launches a browser and serves up my index.html. I can click local links therein. I can edit the index.html and hit reload in the browser and ta-da! there's my updated page.

Debugging the client

Refer to https://docs.microsoft.com/en-us/visualstudio/debugger/client-side-script-debugging

NOTE if you have 15.7 installed: Change in 15.7

I was able to change my default browser to IE and get that going. Good news. Now I need to make it work in Chrome, this guy's page helped me: JavaScript debugging in VisualStudio with Chrome and Chrome's page on the subject.

  1. Start chrome in remote debug mode: chrome.exe --remote-debugging-port=9222
  2. Attach Visual Studio: "Debug" -> "Attach to Process..." -> select the chrome instance

Done.