我有一个使用TypeScript的简单示例项目:https://github.com/unindented/ts-webpack-example
运行tsc -p . (使用tsc版本1.8.10)引发以下内容:
app/index.ts(1,21): error TS2307: Cannot find module 'components/counter'.
components/button/index.ts(2,22): error TS2307: Cannot find module 'shared/backbone_base_view'.
components/button/index.ts(3,25): error TS2307: Cannot find module 'shared/backbone_with_default_render'.
components/counter/index.ts(2,22): error TS2307: Cannot find module 'shared/backbone_base_view'.
components/counter/index.ts(3,25): error TS2307: Cannot find module 'shared/backbone_with_default_render'.
components/counter/index.ts(4,27): error TS2307: Cannot find module 'shared/backbone_with_subviews'.
components/counter/index.ts(5,20): error TS2307: Cannot find module 'components/button'.它抱怨本地文件的所有导入,如下所示:
import Counter from 'components/counter';如果我将它更改为相对路径,它会工作,但我不想这样做,因为它会使我的生活变得更加困难,当我四处移动文件时:
import Counter from '../components/counter';vscode代码库不使用相对路径,但是对它们一切都很好,所以我必须在我的项目中缺少一些东西:https://github.com/Microsoft/vscode/blob/0e81224179fbb8f6fda18ca7362d8500a263cfef/src/vs/languages/typescript/common/typescript.ts#L7-L14。
您可以查看我的GitHub回购,但如果有帮助,这里是我正在使用的tsconfig.json文件:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": false,
"removeComments": false,
"preserveConstEnums": true,
"sourceMap": true,
"outDir": "dist"
},
"exclude": [
"dist",
"node_modules"
]
}有趣的是,通过webpack使用ts-loader构建项目很好,所以我猜这只是一个配置问题。
发布于 2016-06-01 12:37:16
@vladima回复GitHub上的这个问题
编译器解析模块的方式由moduleResolution选项控制,该选项可以是
node或classic(更多细节和差异可以找到这里)。如果省略此设置,则编译器将此设置视为node,如果模块为commonjs和classic-否则。在您的情况下,如果希望classic模块解析策略与commonjs模块一起使用,则需要使用 { "compilerOptions":{ "moduleResolution":“节点”}}
发布于 2020-07-21 12:01:37
在某些情况下,只需更新include数组即可。
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"outDir": "dist",
"sourceMap": false,
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["src/**/*.ts", "tests/**/*.ts"],
"exclude": ["node_modules", ".vscode"]
}发布于 2021-12-21 02:32:11
我的问题是在不同的环境中进行建筑。在我的OSX构建中没有任何问题。但是当我试图构建Linux环境时,它失败了。这背后的原因是操作系统对大小写敏感。任何遭受此问题的人也请检查您的进口产品的大小写敏感性。
文件结构是:
/X/Y.ts我的进口是:
import Y from "./x/Y.ts";所以,我的修正是做"x“大写。
import Y from "./X/Y.ts";https://stackoverflow.com/questions/37548734
复制相似问题