美文网首页
sublime配置,nodejs搭建静态服务器

sublime配置,nodejs搭建静态服务器

作者: SherHoooo | 来源:发表于2016-07-21 17:42 被阅读0次

    前言:最近觉得webstorm实在是太吃内存了,每次打开死慢,电脑散热也不好,决心弃掉转投sublime。但是要把sublime配置的顺手真不是一时半会的事,接下来我就记录一下我的配置过程,主要分为三步,就能让sublime得心应手。

    1. 安装主题和插件

      这里我们首先要做的第一件事是先安装package control包管理器,有了它我们就能方便的下载和安装各式插件和主题啦。
      我用的是sublime text3 ,用2的同学请自行上官网查找代码
      ctrl+`(这个键是tab键上的那个)打开控制台窗口,将以下这段代码粘贴进去

      import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; 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(' ', '%20')).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)
      

      回车,等待一会关掉sublime重启之后,使用ctrl+shift+p打开控制面板并输入package,如果看到下面这种效果就说明成功了。

      Package control安装成功Package control安装成功

      接下来可以先安装主题,其实默认主题也不错,但是作为一名代码小怪人怎么会满足这种配色呢,所以我们可以安转主题,可以先去官网找找自己喜欢的主题,记下名字,回到sublime,还是ctrl+shift+p打开控制面板,输入pcip(模糊查询),第一个就是,英文不错的同学应该能认出来这就是安装包的意思。回车确定,等一会弹窗,输入你刚才记下的主题,回车,等一会有个弹窗里面有这样一段代码(不是下面这段,这里只是举个例子),copy下来。

      "color_scheme": "Packages/Theme - Spacegray/base16-eighties.dark.tmTheme",
      "theme": "Spacegray Eighties.sublime-theme" 
      

      打开顶部菜单栏的preference-Setting-user,将刚才复制的代码粘贴进去,保存,然后就搞定啦。这里只是举个例子,

      我用的是Theme -DarkMaterial,挺有科技感的,全屏之后是这样的


      material界面material界面

      安装方法跟上面一样,喜欢的话可以试着安装一下。

      接下来我们就可以安装插件了。以下是几个常用插件,跟安转主题差不多,有的需要修改配置文件,有的不需要,这里就不细说了,只列一下,大家自己用package control 下载安装吧。

      • AdvancedNewFile : 快速新建文件
      • sidebar Enbancemens : 增强侧边栏
      • sublimelinter : 语法校验
      • emmet : 快速编写html/css
      • git : 版本控制
      • BracketHighlighter : 符号高亮
      • ColorPicker : 使用取色器改变颜色
      • markdown editingmarkdown preview 实现编写和预览MD
      • AutoFileName : 文件路径自动提示
      • Terminal : 在sublime text 中直接打开命令行
      • csscomb : css属性排序
      • Html-css-js prettify : html/css/js代码格式化

      当然以上只是海量插件中的一小部分,每个人还是要根据自己的需要去安装不同的插件。

    2. 安装完插件就可以爽了吗?还不行,我发现当用sublime打开html文件在浏览器中预览的时候,ajax请求无法发送接收。不像webstorm是打开了一个端口。所以我们想要不只是静态html时,就需要进行一番配置了。这里提供一个思路,把静态文件的工作库放在本地服务器下面。再到sublime里面配置一下预览打开路径就可以了。这里我用nodejs进行演示(你们爱用啥用啥呗,php,java,Python,IIS。。)

      • 首先当然是下载nodejs了,关于怎么在windows下下载安装nodejs请点击这里
        安装配置好之后,在你的工作库里面新建一个文件夹叫做server。由于我是把E盘当做工作库,那我就直接在新建一个文件夹E:/server(此server文件夹我已经上传到github,大家可以下载修改使用,里面还包括了之后说到的bat程序。),
        进入此文件夹,编写三个js文件
        app.js——nodejs主程序入口

          var http = require("http");
          var url = require("url");
          var router = require("./router").router;
          var port = 8000;
        
          var server = http.createServer(function(request,response){
              var pathname = url.parse(request.url).pathname;
              router(pathname,request,response);
          });
        
          server.listen(port);
        
          console.log("Server running at :localhost://"+port);
        
        

        引入各种依赖模块,创建一个服务器并监听8000端口。把http请求路径,以及request请求、response回复传递给route.js(处理路由)

        route.js

          var path = require("path");
          var fs = require("fs");
          var mime = require("./mime").types;
        
          function router (pathname, request, response) {
              if(pathname == "/"||pathname.substring(0,6) == "/index"){
                  pathname = "/index.html";
              }
              var realPath = pathname; //这里要注意路径一定要正确
              fs.exists(realPath, function(exists) {
                  if(!exists) {
                      response.writeHead(404, {"Content-Type":"text/plain"});
                      response.write("404 not found");
                      response.end();
                  }
                  else {
                      fs.readFile(realPath, "binary", function(err, file) {
                          if(err) {
                              response.writeHead(500, {"Content-Type":"text/plain"});
                              response.end(err);
                          }       
                          else {
                              var ext = path.extname(realPath);
                              ext = ext ? ext.slice(1):'unknown';
                              var contentType = mime[ext]||"text/plain";
                              response.writeHead(200,{"Content-Type":contentType});
                              response.write(file,"binary");
                              response.end();
                          }
                      })
                  }
              })
          };
          exports.router = router;
        

        这里路由主要判断请求路径是否存在于本地,如果不存在就返回404 not found,否则返回文件。这里由于返回头信息要给出文件类型,因此要加上一个mime.js映射表,由于我是把E盘整个盘当做工作库,因此,realPath = pathname,假如你是放在E:/workspace/下面的话,那就让realpath = "/workspace"
        搞定之后,cmd,打开server文件夹,输入node app,运行。如果控制台输出,Server running at :localhost://8000;就说明程序运行成功。
        在E:盘下面放一个index.html文件,到浏览器中输入地址localhost:8000/回车你就能看到这个页面出现在浏览器上了。至此本地静态服务器已经搭建好了,至于nodejs更复杂的功能就需要你我一起去探索了。

      1. 最后一步,设置sublime文件快捷键打开浏览器预览
        首先确保你安装了之前提到的那些插件中的侧边栏增强工具插件——“SideBarEnhancements”。安装完成之后,为sidebarenhance设置默认打开浏览器
        打开"Preference --> Package Settings --> Side Bar --> Settings User-User"。在打开的文件中添加
        {
            "default_browser": "chrome" //这些之中的一个: firefox, aurora,    chrome, canary, chromium, opera, safari
        }
      

      默认浏览器可以是列表中的任意一个。这里我选择的是chrome
      下一步也是至关重要的一步,为sidebarenhancements添加默认的localhost目录。在侧边栏任意文档上点击鼠标右键,选择"project-edit priew urls";在弹出来的文件中添加以下内容

      {
          "E:/":{
              "url_testing": "http://localhost:8000/",
              "url_production": "http://115.159.55.211:8000/"
                }
      }
      

      这里外面的"E:/"是你的项目在磁盘中的路径,由于我的项目都是直接放在E盘下的,所以就直接是E:/了,"url_testing"代表你本地localhost地址,"url_production"为项目的线上地址,请根据具体情况修改。

      最后一步就是,为浏览器绑定热键了
      在sulime 中打开"reference --> Package Settings --> Side Bar --> key Bindings-User"在打开的文件中添加如下内容

     ```
        [
            { "keys": ["ctrl+shift+c"], "command": "copy_path" },
            //chrome
            { "keys": ["f1"], "command": "side_bar_files_open_with",
                    "args": {
                        "paths": [],
                        "application": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
                        "extensions":".*" //匹配任何文件类型
                    }
             },
            //firefox
            { "keys": ["f2"], "command": "side_bar_files_open_with",
                     "args": {
                        "paths": [],
                        "application": "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
                        "extensions":".*" 
                    }
            },
            //safari
            { "keys": ["f3"], "command": "side_bar_files_open_with",
                    "args": {
                        "paths": [],
                        "application": "C:\\Program Files (x86)\\Safari\\safari.exe",
                        "extensions":".*"
                    }
             },
             //opera
             { "keys": ["f4"], "command": "side_bar_files_open_with",
                     "args": {
                        "paths": [],
                        "application": "D:\\opera\\launcher.exe",
                        "extensions":".*"
                    }
            },
            {
                "keys": ["alt+f1"],
                "command": "side_bar_open_in_browser",
                "args": {
                            "paths": [],
                            "type": "testing",
                            "browser": "chrome"
                        }
            },
            {
                "keys": ["alt+f2"],
                "command": "side_bar_open_in_browser",
                "args": {
                            "paths": [],
                            "type": "testing",
                            "browser": "firefox"
                        }
            },
            {
                "keys": ["alt+f3"],
                "command": "side_bar_open_in_browser",
                "args": {
                            "paths": [],
                            "type": "testing",
                            "browser": "safari"
                        }
            }
        ]
    
     ```
     key里面设置的是热键和对应的命令
     这里我就拿chrome举例,我分别设置了F1,和alt+F1。f1代表以某个程序打开此文件,application里面要填写程序的正确路径地址。
     alt+f1则代表以浏览器打开此文件,browser里面填写浏览器名,还记得之前我们配置的打开地址吗?这里type:testing即是以当时我们设置的地址作为前缀打开。
    
     可能你已经发现了问题,那就是如果要能生效,必须保持nodejs的那个app程序保持运行,这样在每次打开sublime编程之前都要开一次,有点麻烦是不。有个方法是,编写一个bat程序,加入开机启动服务,让每次开机之后就自动启动这个node程序。
    

    至此,我们的静态服务器和sublime已经配置完了,开始新的编程之旅吧!

    相关文章

      网友评论

          本文标题:sublime配置,nodejs搭建静态服务器

          本文链接:https://www.haomeiwen.com/subject/bkibjttx.html