Mil*_*una 5 javascript typescript reactjs webpack babeljs
我正在从 v6 升级到 Babel v7,当我构建项目时,出现以下错误:
语法错误:src\app\layout\components\FooterToolbar.js:意外的标记
我正在使用以下 .babelrc 配置
{
"presets": [
["@babel/preset-env", { "useBuiltIns": "usage", "debug": true }],
"@babel/preset-typescript",
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-transform-runtime"
]
}
Run Code Online (Sandbox Code Playgroud)
最后这是我的 webpack 配置。我首先将 pollyfills 放在条目中,然后将 index.js 文件放在条目中,然后将 babel-loader 作为转译器
entry: ["@babel/polyfill", paths.appIndexJs],
Run Code Online (Sandbox Code Playgroud)
// Process JS with Babel.
{
test: /\.(js|jsx|mjs|ts|tsx)$/,
exclude: /node_modules/,
include: paths.appSrc,
use: [{ loader: 'babel-loader' }],
},
Run Code Online (Sandbox Code Playgroud)
有什么建议可以解决这个问题吗?多谢
编辑:我在这个项目中使用打字稿。这是 tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"moduleResolution": "node",
"esModuleInterop": true,
"isolatedModules": true,
"strict": true,
"noEmit": true,
"allowJs": true,
"resolveJsonModule": true,
"jsx": "react"
},
"include": [
"src"
]
}
Run Code Online (Sandbox Code Playgroud)
最后通过更新 webpack、其插件并在 webpack 配置中添加预设和插件使其正常工作
// Process JS with Babel.
{
test: /\.(js|jsx|mjs|ts|tsx)$/,
exclude: /node_modules/,
include: paths.appSrc,
use: [{
loader: 'babel-loader',
options: {
presets: [
["@babel/preset-env", { modules: "commonjs" }],
"@babel/preset-typescript",
"@babel/preset-react"
],
plugins: [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-transform-runtime"
]
}
}],
},
Run Code Online (Sandbox Code Playgroud)
感谢您的回答,希望这对其他人有用
| 归档时间: |
|
| 查看次数: |
4592 次 |
| 最近记录: |