我正在使用 ionic 1
,想改用 TypeScript 并使用 ionic-native
功能。
- 我尝试了以下代码:
import {Calendar} from 'ionic-native';
- 但是出现了错误:
[ts] Cannot find module 'ionic-native'
。
于是我去参考了文档 TypeScript 如何解析模块。文档中提到 TypeScript 会在以下路径中查找模块:
1. /root/node_modules/moduleB.ts
2. /root/node_modules/moduleB.tsx
3. /root/node_modules/moduleB.d.ts
4. /root/node_modules/moduleB/package.json (if it specifies a "typings" property)
5. /root/node_modules/moduleB/index.ts
6. /root/node_modules/moduleB/index.tsx
7. /root/node_modules/moduleB/index.d.ts
所以我查看了我的node_folders,看看是否有一个路径匹配:
node_modules
- ionic-native
-- dist
-- package.json
因此,我认为第四项应该匹配,因为package.json包含以下内容:
"typings": "dist/es5/index.d.ts
但是它不起作用。
如果我改为:
import {Calendar} from '../../../node_modules/ionic-native/dist/es5/index';
功能是正常的,但我不想在所有文件中都这样做,那样太复杂了 :/
因为我想要向前迈进,在TypeScript文档中搜索了另一种方法。我还可以看到,你可以在tsconfig.json
中为模块设置路径属性
但有趣的是,如果我放入正确的JSON,它不起作用:
"paths": {
"ionic-native": ["node_modules/ionic-native/dist/es5/index.d.ts"]
}
当我输入无效的JSON时,它仍然可以工作(注意缺少的"
):
"paths": {
ionic-native: ["node_modules/ionic-native/dist/es5/index.d.ts"]
}
有什么想法吗?