2017-01-17 57 views
1

我试图使用moment.js从打字稿2.1.5以打字稿和 “模块” 使用moment.js: “AMD”

我安装了故宫的时刻:

npm install moment --save-dev

该d.ts文件将包含在moment.js所以没有通过需要 @typings安装,但是当我编译我的项目,我得到以下错误:

错误TS2307:找不到模块“M oment”。

这是我重新制作这个问题的一个简单测试。

repro.ts文件

import * as moment from "moment"; 
const date = moment().format("YYYY"); 
console.log(date); 

tsconfig.json文件:

{ 
    "compilerOptions": { 
     "module": "amd" 
    } 
} 

如果我与编译:

.\node_modules\.bin\tsc 

我得到的错误。我注意到,如果我的目标是commonjs模块(tsconfig中的“module”:“commonjs”),编译就没问题了。

如果我定位到amd模块,使用时刻的正确方法是什么?

回答

2

您必须将"moduleResolution": "node"添加到compilerOptionstsconfig.json

省略时,moduleResolution默认为classic除非modulecommonjs,这是你的模块没有在node_modules找到了原因。

另外,在编译器的某些未来版本中,它看起来像是going to be fixed

+0

谢谢。它帮助我很多。我所有的导入都可以使用“节点”分辨率,所以对我来说这完全没问题。 – NicoD