Ant*_*ine 8 fetch typescript reactjs webpack
我正在尝试使用一个简单的演示应用程序使用Typescript和React,使用webpack.当我尝试添加whatgw-fetch从服务器检索数据时,运行webpack时出现此错误:
error TS2307: Cannot find module 'whatwg-fetch'
Run Code Online (Sandbox Code Playgroud)
错误在导入行上:
import * as Fetch from 'whatwg-fetch'
Run Code Online (Sandbox Code Playgroud)
我确实安装了npm依赖项和typescript的类型
npm install --save whatwg-fetch
typings install --global --save dt~whatwg-fetch
Run Code Online (Sandbox Code Playgroud)
我的webpack配置是:
var HtmlWebpackPlugin = require('html-webpack-plugin');
var HTMLWebpackPluginConfig = new HtmlWebpackPlugin({
template: __dirname + '/app/index.html',
filename: 'index.html',
inject: 'body'
});
var path = require('path');
module.exports = {
entry: [
path.resolve(__dirname, 'app/index.tsx')
],
output: {
path: __dirname + '/dist',
filename: "index_bundle.js"
},
resolve: {
// Add `.ts` and `.tsx` as a resolvable extension.
extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js']
},
module: {
loaders: [
{test: /\.tsx$/, exclude: /node_modules/, loader: "ts-loader"}
]
},
plugins: [HTMLWebpackPluginConfig]
};
Run Code Online (Sandbox Code Playgroud)
我在IDE(IntelliJ IDEA)中没有看到任何错误,如果我将导入更改为某些实际不存在的模块,我会得到一个不同的错误(Module not found: Error: Cannot resolve module 'whatwg-fetcha' in C:\dev\[...]),我的IDE告诉我导入无效.
基本React的导入工作正常,具有相同的设置:
npm install --save react
typings install --global --save dt~react
import * as React from 'react'
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
谢谢你的帮助.
Ant*_*ine 22
在进行了一些更多的研究(并且实际上写下了问题)之后,看来whatwg-fetch的输入就是这个用例:仅为副作用导入模块(如网站所述:虽然不推荐练习,但有些模块设置一些可以被其他模块使用的全局状态.这些模块可能没有任何导出,或者消费者对他们的任何出口都不感兴趣.)
而不是
import * as Fetch from 'whatwg-fetch'
Run Code Online (Sandbox Code Playgroud)
我用了
import 'whatwg-fetch'
Run Code Online (Sandbox Code Playgroud)
我不会再收到任何错误,我可以在我的组件中使用fetch函数.希望这有助于其他人.
| 归档时间: |
|
| 查看次数: |
6277 次 |
| 最近记录: |