faf*_*aro 5 typescript webpack
我使用相对路径在 TypeScript 中导入了一个模块。
// index.ts
import {Widget} from './components/Widget';
Run Code Online (Sandbox Code Playgroud)
Webpack 给了我以下错误:
// index.ts
import {Widget} from './components/Widget';
Run Code Online (Sandbox Code Playgroud)
我的 webpack 配置文件非常基本,规则中有 ts-loader 并指向 index.ts 作为入口文件。
我在这里做错了什么?
附加信息:
项目文件夹结构:
c:\project
?? src
? ?? index.ts
? ?? components
? ?? Widget.ts
?? webpack.config.js
?? tsconfig.json
Run Code Online (Sandbox Code Playgroud)
网络包配置:
const path = require('path');
const config = {
entry: './src/index.ts',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{ test: /\.tsx?$/, use: 'ts-loader' }
]
}
};
module.exports = config;
Run Code Online (Sandbox Code Playgroud)
配置文件
{
"compilerOptions": {
"outDir": "dist",
"module": "commonjs",
"target": "es6"
},
"include": [ "src/**/*" ],
"exclude": [
"node_modules"
]
}
Run Code Online (Sandbox Code Playgroud)
版本:
webpack 3.1.0
typescript 2.4.1
ts-loader 2.2.2
Run Code Online (Sandbox Code Playgroud)
faf*_*aro 10
添加resolve.extensions到您的 webpack.config.js。
{
resolve: {
extensions: ['.ts', '.js', '.json']
}
}
Run Code Online (Sandbox Code Playgroud)
当您在其中一个模块 ( ref ) 中编写无扩展名的导入时,webpack 中的模块解析默认为仅搜索.js和.json文件。
所以当你写:
import {Widget} from './components/Widget';
Run Code Online (Sandbox Code Playgroud)
Webpack 默认只搜索这些文件:
{
resolve: {
extensions: ['.ts', '.js', '.json']
}
}
Run Code Online (Sandbox Code Playgroud)
从而最终给出Module not found错误。
| 归档时间: |
|
| 查看次数: |
4895 次 |
| 最近记录: |