VS Code js编译支持alias
VS Code 的编译器 其实就是使用的 typescript 编译器,就是以前提到过的 tsserver.js
相应的编译参数可以参考 http://www.typescriptlang.org/docs/handbook/compiler-options.html
编译配置的话,只需要在项目中编写 jsconfig.json 或 tsconfig.json
1.增加配置属性
没仔细研究该怎么配置,直接按照paths的进行复制
{
    name: "alias",
    type: "object",
    isTSConfigOnly: true,
    category: ts.Diagnostics.Module_Resolution_Options,
    description: ts.Diagnostics.A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl
},

2.在LoadModule方法中增加
    function _getModuleUsingBaseUrlAliasPath(alias, moduleName) {
        var flag = false;
        var path = moduleName;
        do {
            flag = false;
            for (var key in alias) {
                if (path == key || path.indexOf(key + '/') === 0) {
                    path = alias[key] + path.substr(key.length)
                    flag = true;
                }
            }
        } while(flag);
        return path;
    }
    function tryLoadModuleUsingBaseUrlAlias(extensions, moduleName, loader, failedLookupLocations, state) {
        var baseUrl = state.compilerOptions.baseUrl;
        var path = '';
        var flag = false;
        var path = _getModuleUsingBaseUrlAliasPath(state.compilerOptions.alias, moduleName);
        if (path ==  moduleName) return false;
        var candidate = ts.normalizePath(ts.combinePaths(baseUrl, path));
        var res = loader(extensions, candidate, failedLookupLocations, !directoryProbablyExists(ts.getDirectoryPath(candidate), state.host), state);
        return res;
    }
    function tryLoadModuleUsingBaseUrl(extensions, moduleName, loader, failedLookupLocations, state) {
        if (!state.compilerOptions.baseUrl) {
            return undefined;
        }
        if (state.traceEnabled) {
            trace(state.host, ts.Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, state.compilerOptions.baseUrl, moduleName);
        }
        if (state.compilerOptions.alias) {
            var res = tryLoadModuleUsingBaseUrlAlias(extensions, moduleName, loader, failedLookupLocations, state);
            if (res) {
                return res;
            }
        }

VS Code js编译支持alias的更多相关文章
- web3.js编译Solidity,发布,调用全部流程(手把手教程)
		
web3.js编译Solidity,发布,调用全部流程(手把手教程) 下面教程是打算在尽量牵涉可能少的以太坊的相关工具,主要使用web3.js这个以太坊提供的工具包,来完成合约的编译,发布,合约方法调 ...
 - jQuery响应式幻灯片插件jquery.glide.js(支持触摸&轻量级)
		
找到一款好的幻灯片插件不容易,找到一款功能全并且使用很简单的幻灯片更不容易,今天为大家分享一款全能的幻灯片插件glide.js,也是我现在在使用的一款插件. jquery.glide.js是响应和触摸 ...
 - NDK环境搭建(Native Code的编译,不需要Cygwin)
		
分类: android2013-06-21 15:49 475人阅读 评论(0) 收藏 举报 Android NDK 目录(?)[-] System and Software Requirements ...
 - xmake v2.6.1 发布,使用 Lua5.4 运行时,Rust 和 C++ 混合编译支持
		
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...
 - ubuntu下使用visual studio code来编译和调试C++
		
最近想在linux上编译c++代码,自己却一直习惯window上的IDE.以前公司要我写Linux代码的时候,我一般都是用eclipse + CDT,而eclipse这东西吧,我个人感觉因为加载组件太 ...
 - JS不支持正则中的负向零宽断言
		
今天在项目中用到了正则表达式,并且需要用负向零宽断言 (?<=exp) 进行筛选,结果运行时报 Invalid group 错,一开始以为是自己很久没用表达式写错了,查阅了一下正则语法后发现并没 ...
 - PHP编译支持mysqli
		
PHP编译支持mysqli前提是必须安装mysql直接上命令先进入源码包我的源码包是在/usr/local/php-5.2.1/ext/mysqli这样进入 cd /usr/local/php-5.2 ...
 - cocos2d-html5将js编译为jsc
		
在d:\DevTool\cocos2d-x-2.2.2\cocos2d-x-2.2.2\tools\cocos2d-console\console 有 cocos2d_jscompile.py coc ...
 - cocos2d-html5的jsb模式下如何在编译时自动将js编译为jsc
		
cocos2d-html5是一个用JS来开发游戏的框架,通过javascript Binding的方式可以将游戏编译到手机上.这对前端开发人员来说非常方便,开发效率也比使用c++开发要快的多. jsb ...
 
随机推荐
- git安装配置和使用
			
## 安装git服务器 ## 安装git sudo apt-get install git ## 建立git用户 sudo adduser git ## 修改git用户 * 设置不能登录 vim /e ...
 - MQ对比
			
转:http://blog.csdn.net/linsongbin1/article/details/47781187 MQ框架非常之多,比较流行的有RabbitMq.ActiveMq.ZeroMq. ...
 - select和epoll概念
			
关于linux的I/O复用接口select和epoll,下列说法错误的是() select调用时会进行线性遍历,epoll采用回调函数机制,不需要线性遍历 select的最大连接数为FD_SETSIZ ...
 - opencv学习--透视变化
			
透视变换和仿射变换具有很大的相同特性,前面提到了放射变化,这里再次把它拿出和透视变换进行比较 #include"cv.h" #include"highgui.h" ...
 - HDU3231拓扑排序
			
Box Relations Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
 - jquery动画切换引擎插件 Velocity.js 学习02
			
案例实践: 第一页会以动画形式进入页面: 点击进入按钮时,第一页以动画消失,第二页以动画形式进入,同时四张图片也定义从小到大的动画形式: 第二页关闭按钮点击时,先是四张图片以缩小动画消失,然后第二页以 ...
 - UVA 11105 Semi-prime H-numbers
			
https://vjudge.net/problem/UVA-11105 筛法 #include<cstdio> #include<cstring> #define N 100 ...
 - 【HDU】3068 最长回文
			
[算法]manacher [题解][算法]字符串 #include<cstdio> #include<algorithm> #include<cstring> us ...
 - js 合并多个对象 Object.assign
			
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. var o1 = { a: 1 };var o2 = { b: 2 };var o3 ...
 - hdu 1217 Arbitrage (spfa算法)
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1217 题目大意:通过货币的转换,来判断是否获利,如果获利则输出Yes,否则输出No. 这里介绍一个ST ...