webpack Terser plugin Unexpected token:operator(< )

iqih9akk  于 2023-11-19  发布在  Webpack
关注(0)|答案(1)|浏览(227)

当我运行cross-env NODE_ENV=production webpack --config时,我得到了这个错误消息。terser插件有问题,但没有找到任何关于这个问题的信息,这可以解决我的问题。
我的邮箱/webpack. prod. js:

  1. ERROR in src/index.js
  2. src/index.js from Terser plugin
  3. Unexpected token: operator (<) [src/index.js:11,25]
  4. at js_error (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:546:11)
  5. at croak (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:1270:9)
  6. at token_error (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:1278:9)
  7. at unexpected (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:1284:9)
  8. at expr_atom (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:2523:9)
  9. at maybe_unary (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3308:19)
  10. at expr_ops (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3359:24)
  11. at maybe_conditional (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3364:20)
  12. at maybe_assign (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3441:20)
  13. at expression (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3466:24)
  14. ERROR in src/components/App/index.js
  15. src/components/App/index.js from Terser plugin
  16. Unexpected token: operator (<) [src/components/App/index.js:9,2]
  17. at js_error (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:546:11)
  18. at croak (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:1270:9)
  19. at token_error (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:1278:9)
  20. at unexpected (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:1284:9)
  21. at expr_atom (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:2523:9)
  22. at maybe_unary (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3308:19)
  23. at expr_ops (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3359:24)
  24. at maybe_conditional (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3364:20)
  25. at maybe_assign (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3441:20)
  26. at expression (/Users/isidore/Desktop/oclock/spe-react/Spe-React-E03-prise-en-main-modele-lsidore/node_modules/terser/dist/bundle.min.js:3466:24)
  27. 2023-02-08 19:29:31: webpack 5.73.0 compiled with 2 errors in 1626 ms (edb1238b11f4b1df800c)
  28. error Command failed with exit code 1.

字符串
下面是我的webpack.prod.js:

  1. const paths = require('./paths');
  2. const { merge } = require('webpack-merge');
  3. const common = require('./webpack.common.js');
  4. const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  5. const TerserJSPlugin = require('terser-webpack-plugin');
  6. const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
  7. const { BundleStatsWebpackPlugin } = require('bundle-stats-webpack-plugin');
  8. module.exports = merge(common, {
  9. mode: 'production',
  10. devtool: false,
  11. plugins: [
  12. new MiniCssExtractPlugin({
  13. filename: 'css/[name].css',
  14. }),
  15. // Stats bundle
  16. new BundleStatsWebpackPlugin(),
  17. ],
  18. module: {
  19. rules: [
  20. {
  21. test: /\.(s?css)$/,
  22. use: [
  23. {
  24. loader: MiniCssExtractPlugin.loader,
  25. options: { publicPath: '../' },
  26. },
  27. {
  28. loader: 'css-loader',
  29. options: {
  30. sourceMap: true,
  31. importLoaders: 3,
  32. url: {
  33. filter: (url) => {
  34. if (url.includes('charset=utf-8;;')) {
  35. return false;
  36. }
  37. return true;
  38. },
  39. },
  40. },
  41. },
  42. 'postcss-loader',
  43. 'resolve-url-loader',
  44. {
  45. loader: 'sass-loader',
  46. options: {
  47. sourceMap: true,
  48. implementation: require('sass'),
  49. },
  50. },
  51. ],
  52. },
  53. ],
  54. },
  55. stats: {
  56. assets: true,
  57. entrypoints: true,
  58. chunks: true,
  59. modules: true,
  60. builtAt: true,
  61. hash: true,
  62. },
  63. optimization: {
  64. minimizer: [new TerserJSPlugin(), new CssMinimizerPlugin()],
  65. runtimeChunk: 'single',
  66. splitChunks: {
  67. chunks: 'all',
  68. },
  69. },
  70. performance: {
  71. hints: false,
  72. maxEntrypointSize: 512000,
  73. maxAssetSize: 512000,
  74. },
  75. });


这是我的.babel.src:

  1. {
  2. "presets": [
  3. [
  4. "@babel/preset-env", {
  5. "useBuiltIns": "usage",
  6. "corejs": 3
  7. }],
  8. ["@babel/preset-react", {
  9. "runtime": "automatic"
  10. }]
  11. ],
  12. "plugins": [
  13. "@babel/plugin-proposal-object-rest-spread"
  14. ]
  15. }


这里是我的src/index.js:

  1. // == Import : npm
  2. import { createRoot } from 'react-dom/client';
  3. // == Import : local
  4. // Composants
  5. import App from 'src/components/App';
  6. // == Render
  7. // 1. Élément React racine (celui qui contient l'ensemble de l'app)
  8. // => crée une structure d'objets imbriqués (DOM virtuel)
  9. const rootReactElement = <App />;
  10. // 2. La cible du DOM (là où la structure doit prendre vie dans le DOM)
  11. const root = createRoot(document.getElementById('root'));
  12. // 3. Déclenchement du rendu de React (virtuel) => DOM (page web)
  13. root.render(rootReactElement);


这里是我的src/components/App/index.js:

  1. // == Import
  2. import reactLogo from './react-logo.svg';
  3. import './styles.css';
  4. // == Composant
  5. const App = () => {
  6. return (
  7. <div className="app">
  8. <img src={ reactLogo } alt="react logo" />
  9. <h1>Composant : App</h1>
  10. </div>
  11. );
  12. };
  13. // == Export
  14. export default App;


我已经尝试删除new TerserJSPlugin(),它的工作,但代码并没有缩小.
我已经尝试改变.babelrc预设为:

  1. "presets": [
  2. "@babel/react",
  3. "@babel/env"
  4. ]


什么都没做

mum43rcc

mum43rcc1#

我只是有同样的问题,改变这些文件的扩展名为.jsx解决了这个问题。

相关问题