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

前言:最近觉得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已经配置完了,开始新的编程之旅吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,967评论 19 139
  • Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插...
    追風逸少丶阅读 11,367评论 1 34
  • Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插...
    晚晴幽草阅读 711,721评论 149 1,114
  • 下载地址:Sublime Text 原则上收费的,但可以试用,试用期是免费的,在试用期间会提示你购买. packa...
    万物皆可搬阅读 9,716评论 2 9
  • Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插...
    xiaotao123阅读 9,520评论 0 27