typescript + VS不允许从node_modules导入,同时还访问本地文件

时间:2018-01-25 05:06:07

标签: typescript visual-studio-2017

我在visual studio 2017中使用typescript,使用项目TypescriptBuild设置中的默认设置(无tsconfig文件):

我在项目中的node_modules文件夹中安装了yarn,在wwwroot中有一个单独的文件夹,如下所示:

myproject
├── wwwroot ── scripts
├── node_modules ──... 

使用这样的人为功能:

import * as moment from 'moment'
namespace mynamespace {
    function test(){
       let a = moment(); 
       //intellisense & build for line below only work when commenting out import directive at top of file
       let b = new mynamespace.OtherClass(); 
    }
}

我成功导入了片刻,但无法访问同一'scripts'目录中不同文件中定义的其他类。或者,如果我注释掉import指令,我可以访问我的其他类(包括intellisense和build),但显然无法从node_modules目录中访问。

如何从我的脚本文件夹中访问时刻和其他定义?

谢谢

1 个答案:

答案 0 :(得分:1)

解决了这个问题,这就是我所学到的(对于那些一直使用node& ts的人来说显而易见):

  • 使用VS代码,而不是VS 2017 - 它更好地解决了import语句。
  • 使用npm / yarn项目,当tsconfig包含时,会自动搜索node_modules文件夹:
    • " module":" commonjs",
    • " moduleResolution":" node"
  • 我使用纱线,但相当于npm,你可以专门导入类型定义
    • 添加纱线--dev @ types / bootstrap
  • 在发布tsconfig.ts文件的情况下,允许通过导入来访问本机节点功能:
    • 添加纱线--dev @ types / node