2017-01-17 48 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