Сбой сборки Typescript при использовании js node_modules с использованием расширенного синтаксиса

#javascript #typescript

#javascript #typescript

Вопрос:

Я регулярно сталкиваюсь с этой ошибкой, и я никогда не добирался до сути того, что происходит должным образом. Здесь я ссылаюсь на puppeteer из файла typescript — но он не может работать с файлом js, потому что он обнаружил неожиданный символ — похоже, что он не способен анализировать символы es6.

ОШИБКА в ./node_modules/puppeteer/node_modules/find-up/index.js Сбой синтаксического анализа модуля: неожиданный токен (29:38) Для обработки этого типа файлов может потребоваться соответствующий загрузчик.

while (true) {
const foundPath = await runMatcher({...options, cwd: directory});


Версия узла 12.6.1, версия TS 4.0.2

tsconfig.json :

 {
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "jsx": "react",
    "lib": [
      "dom",
      "es6",
      "dom.iterable",
      "scripthost",
      "es2015",
      "es2016",
      "es2017",
      "dom"
    ],
    "alwaysStrict": true,
    "strictNullChecks": true,
    "noImplicitAny": false,
    "noImplicitReturns": true,
    "noImplicitThis": false,
    "noUnusedLocals": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,

    "sourceMap": true,

    "outDir": "dist",
    "allowSyntheticDefaultImports": true,
    "downlevelIteration": true,
    "typeRoots": [
        "./node_modules/@types"
    ]
  },
  "files": [
    "app/index.tsx"
  ],
  "include": [
    "app/**/*.ts",
    "app/**/*.tsx",
    "node_modules/@types/**/*.d.ts",
    "app/types.d.ts"
  ],
  "exclude": [
    "dist"
  ]
}
  

webpack config

 /**
 * Base webpack config used across other specific configs
 */

const path = require('path');
const {
  dependencies: externals
} = require('../app/package.json');

module.exports = {
  module: {
      loaders: [
        {
          test: /.tsx?$/,
          loaders: ['react-hot-loader/webpack', 'ts-loader'],
          exclude: /node_modules/
        },
        {
          test: /.json$/,
          loader: 'json-loader'
        },
        {
          test: /.m?js$/,
          // exclude: /(node_modules|bower_components)/,
          use: {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env'],
              plugins: ['@babel/plugin-proposal-object-rest-spread']
            }
          }
        }
      ]
  },

  output: {
    path: path.join(__dirname, 'app'),
    filename: 'bundle.js',

    // https://github.com/webpack/webpack/issues/1114
    libraryTarget: 'commonjs2'
  },

  // https://webpack.github.io/docs/configuration.html#resolve
  resolve: {
    extensions: ['.js', '.ts', '.tsx', '.json'],
    modules: [
      path.join(__dirname, 'app'),
      'node_modules',
    ]
  },

  plugins: [],

  externals: Object.keys(externals || {})
};
  

Комментарии:

1. какую версию Node вы используете

2. @Pointy 12.16.1

3. Ну, я думаю, более полезным вопросом было бы, можете ли вы выполнить инструкцию расширенного синтаксиса из Node REPL в вашей текущей версии. редактировать Похоже, что это, безусловно, должно работать в узле 12.16.1.

4. @Pointy Я могу, похоже, работает в 12.6.1