zoukankan      html  css  js  c++  java
  • 在windows环境下基于sublime text3的node.js开发环境搭建

    摘自:http://blog.sina.com.cn/s/blog_5a6efa330102vcla.html  (略有修改)

    首先安装sublime text3,百度一堆,自己找吧。理论上sublime text2应该也可以。我只能说一句:这个软件实在是太强悍了。

    跨平台,丰富的插件体系,加上插件基本上就是一个强悍的ide了。目前我在使用的主要是Emmet、Python、还有一些格式化的插件(xml,json),加上这次安装的node.js。

    node.js的安装就不用多说了,直接http://nodejs.org/ 点击install下载window版本的安装程序后安装即可。默认的安装会将安装目录加到path环境变量中,这一步是为了后续使用node的时候,可以不用带路径,当然,后续在sublime text中安装好nodejs插件之后,也可以对node的路径进行一些自定义的设置。为了使用方便,建议增加到path环境变量。

    SublimeText-Nodejs插件(https://github.com/tanepiper/SublimeText-Nodejs)

    原本在sublime text的插件库里面有nodejs的插件,但是经过尝试安装后,发现无法修改编译设置,没找到Nodejs.sublime-build文件,后来在github上面看了下人家的安装说明之后再重新安装的。

    安装Package Control;运行Sublime,按下快捷键Ctrl + `;在控制台中输入如下并回车;

    代码如下:

    版本Ver 2

    import urllib2,os,hashlib; h = '2deb499853c4371624f5a07e27c334aa' + 'bf8c4e67d14fb0525ba4f89698a6d7e1'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', ' ')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

    版本Ver 3

    import urllib.request,os,hashlib; h = '2deb499853c4371624f5a07e27c334aa' + 'bf8c4e67d14fb0525ba4f89698a6d7e1'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', ' ')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

    安装也有二种方式:

    1、直接下载压缩包后解压到sublime text的package目录中。查看package目录在哪可以通过菜单栏中的Preferences-->浏览程序包Browse Packages直接打开package目录。

    2、使用git命令下载到package目录(git clone https://github.com/tanepiper/SublimeText-Nodejs "D:ProgramFilesSublime Text 3DataPackages odejs")

    修改编译选项,在package目录下的nodejs目录中,打开Nodejs.sublime-build,原始内容如下:

     {

      "cmd": ["node", "$file"],
      "file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
      "selector": "source.js",
      "shell": true,
      "encoding": "cp1252",
      "windows":
      {
        "shell_cmd": "taskkill /F /IM node.exe & node $file"
      },
      "linux":
      {
        "shell_cmd": "killall node; /usr/bin/env node $file"
      },
      "osx":
      {
        "shell_cmd": "killall node; /usr/bin/env node $file"
      }
    }

    有2个地方需要修改,一个是编码,为了避免乱码code,需要改成cp936;另外一个是cmd命令,本身如果只是想简单的运行nodejs程序的话,windows下面的cmd可以直接 "cmd": ["node", "$file"],但是这样非常不利于开发环境,因为这样的话每次build都会重新启动一个node.exe进程,且会占用一个端口,这肯定是我们不希望的。上文中的cmd原本是想在启动node.exe之前讲node.exe进程都杀掉,然后再启动node.exe,但是这个命令写的不对,直接使用的话是编译不成功的。对cmd命令需要做简单的处理,修改好之后的Nodejs.sublime-build文件内容如下:

     {

      "cmd": ["node", "$file"],
      "file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
      "selector": "source.js",
      "shell": true,
      // "encoding": "cp1252",
      "encoding": "utf8",
      "windows":
      {
        // "shell_cmd": "taskkill /F /IM node.exe & node $file"
        "shell_cmd": "taskkill /F /IM E:/DevelopTools/nodejs/node.exe & node $file"
      },
      "linux":
      {
        "shell_cmd": "killall node; /usr/bin/env node $file"
      },
      "osx":
      {
        "shell_cmd": "killall node; /usr/bin/env node $file"
      }
    }

    重启sublime text之后,配置就算完成了。我们写一小段代码来验证一下是否可以正常运行。

    var http = require('http');

    var os = require('os');

    http.createServer(function (request, response) {

    response.writeHead(200, {'Content-Type': 'text/plain'});

    response.end('Hello World '); }).listen(3000);

    console.log('Server running at http://127.0.0.1:3000/');

    Ctrl+b编译这段代码之后,sublime text窗口中就会显示

    Server running at http://127.0.0.1:3000/

    若之前有运行的node进程在,则会先杀掉node进程,再启动node,显示如下:

    成功: 已终止进程 "node.exe",其 PID 为 154588。

    Server running at http://127.0.0.1:3000/

    到此,服务端算是启动成功,打开浏览器,输入http://127.0.0.1:3000/,页面显示Hello World则表示交互正常。

  • 相关阅读:
    subprocess 的 Popen用法
    subprocess之check_out用法
    Appium使用总结
    如何将pyqt5的qt-designer设计出来的 .ui 和 .qrc 文件转化成 .py 文件
    python serial模块使用,是pyserial而非serial
    基于 Tensorflow 实现 Mobilenet V1 并基于 CFAR-10 数据训练
    预测单词词性
    单词纠错系统
    Python深度学习 deep learning with Python
    书单
  • 原文地址:https://www.cnblogs.com/cnblogs-jcy/p/6875914.html
Copyright © 2011-2022 走看看