我有以下项目结构:
<PROJECT_FOLDER>
├── node_modules
├── src
│ ├── components
│ │ └── MyAwesomeComponent.tsx
│ ├── views
│ │ └── MyAwesomeView
│ │ └── index.tsx
│ ├── Application.tsx
│ └── index.tsx
├── webpack.config.js
└── tsconfig.json
以及以下tsconfig.json
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"moduleResolution": "classic",
"module": "es6",
"target": "es5",
"jsx": "react",
"allowJs": true,
"sourceMap": true,
"noImplicitReturns": true,
"experimentalDecorators": true,
"baseUrl": ".",
"paths": {
"*": [
"src/*",
"node_modules/*"
]
},
}
}
假设我在node_modules
中安装了react
(甚至安装了@types/creact
)。当我尝试导入时,例如import*作为React from“React”
或importMyComponent from“components/MyAwesomeComponent
,这两个导入都是错误的,并显示消息“Cannot find module…”等。
在编写导入字符串时,VSCode建议我使用node_modules
中的模块,但不建议使用src/*
的文件夹。
相对导入仍然有效,但这是地狱,你知道。
我绝对是TypeScript的新手,但我正在根据“模块解析”TypeScript文档做事,它不起作用。
非常感谢这里的任何帮助!
但我认为问题不在这里,我甚至没有运行webpack-dev-server
,我相信VSCode不使用web.config。js
配置项目的信息:)
以下是components/MyAwesomeComponent
导入的输出:
======== Resolving module 'components/MyAwesomeComponent' from '/home/username/path/to/project/src/Application.tsx'. ========
Explicitly specified module resolution kind: 'NodeJs'.
'baseUrl' option is set to '/home/username/path/to/project/src', using this value to resolve non-relative module name 'components/MyAwesomeComponent'.
Resolving module name 'components/MyAwesomeComponent' relative to base url '/home/username/path/to/project/src' - '/home/username/path/to/project/src/components/MyAwesomeComponent'.
Loading module as file / folder, candidate module location '/home/username/path/to/project/src/components/MyAwesomeComponent', target file type 'TypeScript'.
File '/home/username/path/to/project/src/components/MyAwesomeComponent.ts' does not exist.
File '/home/username/path/to/project/src/components/MyAwesomeComponent.tsx' exist - use it as a name resolution result.
======== Module name 'components/MyAwesomeComponent' was successfully resolved to '/home/username/path/to/project/src/components/MyAwesomeComponent.tsx'. ========
VSCode 没有从我的 tsconfig.json
强制更新项目设置,即使在重新加载 TypeScript 项目
之后也是如此。我刚刚重新启动它,现在一切正常!:)
谢谢大家的帮助!
您可能需要添加此密钥:
...
"include": [
"src/**/*"
],
...
您使用的path
键主要是为了让TypeScript了解您的导入“将适用于”Webpack配置。假设您在Webpack配置中有一个别名
键,如:
alias: {
core: resolve(__dirname, '../src/services/core'),
(并且您的上下文
键位于 SRC
文件夹中)。
然后您应该在tsconfig中添加一个path
键,如下所示
"paths": {
"core/*": ["./services/core/*"],
(将您的< code>src文件夹作为< code>baseURL
我总是对打字稿使用以下配置
{
"compilerOptions": {
"module": "commonjs",
"target": "es3",
"moduleResolution": "node",
"baseUrl": "src",
"allowSyntheticDefaultImports": true,
"noImplicitAny": true,
"strict": false,
"sourceMap": true,
"outDir": "dist/",
"jsx": "react",
"allowJs": true,
"declaration": false,
"removeComments": true,
"noLib": false,
"preserveConstEnums": true,
"suppressImplicitAnyIndexErrors": true,
"types": [ "node" ],
"lib": ["es6", "dom"]
},
"include": [
"src/**/*"
]
}
如果你使用的是很棒的打字稿加载器,我还包括这个:
"awesomeTypescriptLoaderOptions": {
"useCache": true,
"forceIsolatedModules": true
}
编辑:
我认为导入错误与Webpack有关。尝试在Webpack配置中设置以下内容:
const path = require('path');
...
context: path.resolve(__dirname, './src'),
resolve: {
modules: ['src', 'node_modules']
...
需要 10.2.0+ 您可以在*.vue文件中定义自定义语言块。 自定义块的内容将由在vue-loader'选项的loaders对象中指定的加载器处理,然后由组件模块require。 配置类似于[先进的Loader配置](../ configurations / advanced.md)中描述的配置,除了匹配使用标记名称而不是lang`属性。 如果找到一个自定义块的匹配加载器,它将被处理; 否则将
主要内容:自定义模块编写说明文档到目前为止,读者已经掌握了导入 Python 标准库并使用其成员(主要是函数)的方法,接下来要解决的问题是,怎样自定义一个模块呢? 前面章节中讲过,Python 模块就是 Python 程序,换句话说,只要是 Python 程序,都可以作为模块导入。例如,下面定义了一个简单的模块(编写在 demo.py 文件中): 可以看到,我们在 demo.py 文件中放置了变量(name 和 add)、函数(
本文向大家介绍NodeJS自定义模块写法(详解),包括了NodeJS自定义模块写法(详解)的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇NodeJS自定义模块写法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
当我想使用一些自定义URL时,我很难理解应用于自定义模块的逻辑中的错误 所以,我在我的自定义模块“页面”中使用了像这样的钩子ModuleRoutes: 和应该工作的模块控制器: 网址已正确创建,但当我试图访问该页面的内容时,我将最终出现在404错误页面我做错了什么吗?我想我错过了一些很明显的东西,但不明白是什么... 我已经做了研究,但仍然无法找到解决问题的方法。。似乎$route['contro
本文向大家介绍dedecms中自定义模型的理解?相关面试题,主要包含被问及dedecms中自定义模型的理解?时的应答技巧和注意事项,需要的朋友参考一下 在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息、专题。通过系统自带的模型,我们可以用来构建不同类型的站点,例如:使用图集可以做一个图片站,用软件模型构建一
我在prestashop中创建了一个自定义模块,但我不知道如何处理对该模块的访问。我没有找到任何关于它的文档。我知道怎么在symfony做,但在prestashop不行。我只想让一组用户访问我的模块。有人知道怎么做吗,或者有一个文档链接来帮助我?