Webpack 4 babel / at-loader jsx не распознается на одной машине - PullRequest
0 голосов
/ 12 июня 2018

У меня сейчас очень странная ошибка.Я перенес пользовательскую конфигурацию webpack 3 в webpack 4, используя jsx (реагировать) и машинописный текст.Работает на каждой машине без нареканий, кроме одной.На этом компьютере обнаружена общая ошибка ". Возможно, вам необходим соответствующий загрузчик для обработки этого типа файла ".

Module parse failed: Unexpected token (48:6)
You may need an appropriate loader to handle this file type.
|   renderCtaFigure() {
|     return (
>       <Motion
|         style={{
|           width: spring(

, который вызывается любым нестандартным кодом JavaScript.Например.загрузчик также сообщает:

Module parse failed: Unexpected token (8:9)
You may need an appropriate loader to handle this file type.
|  */
| export function objectToHtmlTags(
>   _object: Object,
|   recrusive: boolean = true
| ): string {

Я проверил, что они настроены на спецификацию:

 {
    test: /\.jsx?$/,
    exclude: /(node_modules(?!\/auw-framework)|bower_components|Public|typo3(?!(conf))\w*|sysext)/,
    use: [
      {
        loader: "babel-loader",
        options: {
          babelrc: true
        }
      }
    ]
  },

  {
    test: /\.tsx?$/,
    exclude: /(bower_components|Public|typo3|sysext)/,
    include: __dirname, // suggested by comments from the at-loader issues
    use: ["babel-loader", "awesome-typescript-loader"]
  },

Соответствующие .babelrc и tsconfig.json выглядят следующим образом:

.babelrc

{
  "presets": ["@babel/preset-env", "@babel/react"],
  "plugins": ["@babel/plugin-proposal-class-properties"]
}

tsconfig.json

{
  "compilerOptions": {
    "lib": ["es2015", "es2016", "es2017", "esnext", "dom"],
    "jsx": "react",
    "baseUrl": "./web",
    "module": "commonjs",
    "experimentalDecorators": true,
    "preserveConstEnums": true,
    "removeComments": true,
    "target": "es5",
    "allowSyntheticDefaultImports": true,
    "noImplicitAny": false,
    "transpileOnly": true,
    "allowJs": false,
    "emitDecoratorMetadata": true,

    "inlineSources": true,
    "sourceMap": true,
    "moduleResolution": "node"
  },
  "awesomeTypescriptLoaderOptions": {
    "useBabel": true,
    "useCache": true,
    "useTranspileModule": true,
    "forceIsolatedModules": true,
    "babelCore": "@babel/core" // needed for Babel v7
  },
  "exclude": [
    "typings/browser.d.ts",
    "typings/browser",
    "node_modules",
    "vendor",
    "typo3_src",
    "web/typo3",
    "sysext/**/*",
    "**/Configuration/**/*.ts",
    "**/TypoScript/**/*.ts",
    "typo3conf/ext/*/Configuration",
    "**/TsConfig/**"
  ]
}

Я потратил часы на поиск и попыткуразличные решения, включая полную переустановку узла и любые другие вещи, работающие на узле.Все, что я мог придумать, точно соответствует моей машине, на которой он работает.

Кто-нибудь предлагает дальнейшую отладку?

1 Ответ

0 голосов
/ 24 сентября 2018

У меня была та же ошибка и та же проблема, что она работала везде.Только не в контейнере Gitlab CI Docker.Даже когда я вытащил тот же контейнер и запускал каждую команду вручную, это работало.Единственное, что исправило это, было удалить папку сборки из списка exclude в конфигурации Babel.

Старый

{
    test: /\.js$/,
    exclude: /(node_modules|build)/,
    loader: 'babel-loader',
    options: {
        //presets and plugins in .babelrc
    }
}

Новый

{
    test: /\.js$/,
    exclude: /(node_modules)/,
    loader: 'babel-loader',
    options: {
        //presets and plugins in .babelrc
    }
}

Все еще не уверен почему, потому что babel не нужна папка для сборки, и она работает везде.Но это решило проблему, поэтому, возможно, попробуйте удалить исключения на данный момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...