【问题标题】:TypeScript tricky module not found errorTypeScript 棘手的模块未找到错误
【发布时间】:2017-05-09 03:51:19
【问题描述】:

我正在使用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 文档中寻找了另一种方式。我还可以读到您可以在tsconfig.json 中添加paths property for modules

但有趣的是,如果我把正确的 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"]
}

有什么想法吗?

【问题讨论】:

  • 亲爱的投票者,您可以回答这个问题,而不是投票。

标签: typescript import ionic2 typescript2.0


【解决方案1】:

我遵循了一个 TS 教程,只是复制了 tsconfig.json,但是有不同类型的模块,我有

"module": "system",

只是替换为

"module": "commonjs",

哎呀,立即一切正常,就像我想要的那样。

【讨论】:

    猜你喜欢
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多