我正在使用ionic 1
并认为更改为TypeScript可能是个好主意。当然,我想使用ionic-native
功能。
import {Calendar} from 'ionic-native';
[ts] Cannot find module 'ionic-native'
。所以去阅读文档How TypeScript resolves modules。 Docs说它试图在以下路径中找到模块:
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
所以我认为数字4应该匹配,因为package.json包含:
"typings": "dist/es5/index.d.ts
但它不起作用。
如果我改为:
import {Calendar} from '../../../node_modules/ionic-native/dist/es5/index';
它有效,但我不想在所有文件中这样做,这太复杂了:/
因为我想继续前进,所以我在TypeScript文档中搜索了另一种方法。我还可以读到您可以在paths property for modules
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"]
}
有什么想法吗?
答案 0 :(得分:3)
我遵循了TS教程,只是复制了tsconfig.json
,但是有不同类型的模块,我有
"module": "system",
刚用
替换它"module": "commonjs",
和whooops,即时一切正常,就像我想要的那样。