gpt4 book ai didi

reactjs - Webpack 和 React 的意外 token

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:51 25 4
gpt4 key购买 nike

我是 TypeScript 的新手,也是 React 的新手,我只是想遵循 React & Webpack tutorial .通过一些搜索,我已经设法解决了大部分问题,除了一个,它有点过时了。当我尝试运行 Webpack 来转译 Typescript 时,我得到:

ERROR in ./src/index.tsx
Module parse failed: /home/X/Projects/react-typescript-tutorial/src/index.tsx Unexpected token (7:4)
You may need an appropriate loader to handle this file type.
|
| ReactDOM.render(
| <Hello compiler="TypeScript" framework="React" />,
| document.getElementById("example")
| );

我尝试了 this previous question 中提到的解决方案但它对我的情况没有影响。我不确定此时这是 awesome-typescript-loader 还是 Webpack 的问题。

我的 webpack.config.js 文件:

module.exports = {
entry: "./src/index.tsx",
output: {
filename: "bundle.js",
path: __dirname + "/dist"
},

devtool: "source-map",

resolve: {
extensions: ["*", ".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
},

module: {
loaders: [
{ test: /\.tsx?$/, loader: "awesome-typescript-loader" }
],

rules: [
{ test: /\.js$/, enforce: "pre", loader: "source-map-loader" }
]
},

externals: {
"react": "React",
"react-dom": "ReactDOM"
},
};

我的 tsconfig.json:

{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"jsx": "react"
},
"include": [
"./src/**/*"
]
}

并且(按照评论中的要求)我的 index.tsx 文件:

import * as React from "react";
import * as ReactDOM from "react-dom";

import { Hello } from "./components/Hello";

ReactDOM.render(
<Hello compiler="TypeScript" framework="React" />,
document.getElementById("example")
);

非常感谢任何可用的帮助!

最佳答案

您同时定义了 module.rulesmodule.loaders。当 webpack 看到 module.rules 时,它会完全忽略 module.loaders,它的存​​在只是出于兼容性原因。所以你的 awesome-typescript-loader 根本没有被使用。要修复它,只需将所有规则放在 modules.rules 下:

module: {
rules: [
{ test: /\.tsx?$/, loader: "awesome-typescript-loader" },
{ test: /\.js$/, enforce: "pre", loader: "source-map-loader" }
]
},

关于reactjs - Webpack 和 React 的意外 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42567263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com