Сбой при разборе модуля: неожиданный символ '@' - PullRequest
0 голосов
/ 22 сентября 2018

Я хочу собрать свое серверное приложение graphql, когда я собираюсь с помощью webpack 4, у меня появляется эта ошибка на декораторе typeorm:

ERROR in ./src/models/user.ts 15:0
Module parse failed: Unexpected character '@' (15:0)
You may need an appropriate loader to handle this file type.
| import { JWT } from './jwt';
| 
> @Entity()
| @Unique(['username'])
| @Unique(['email'])
 @ ./src/server.ts 15:0-37 34:45-49

Файл webpack.config.js выглядит следующим образом:

var ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
var fs = require('fs');
var path = require('path');
var nodeExternals = require('webpack-node-externals');

module.exports = {
  mode: 'production',
  entry: './src/server.ts',
  output: {
    path: __dirname + '/dist',
    filename: '[name].[chunkhash:8].js',
  },
  resolve: {
    extensions: ['.ts', '.tsx', '.js'],
  },
  module: {
    rules: [
      {
        test: '/\.tsx?$/',
        exclude: '/node_modules/',
        include: path.resolve(__dirname, 'src'),
        use: {
          loader: 'ts-loader',
          options: {
            transpileOnly: true
          }
        }
      }
    ]
  },
  plugins: [
    new ForkTsCheckerWebpackPlugin()
  ],
  externals: [nodeExternals()],
};

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

{
  "exclude": [
    "fixtures",
    "tests"
  ],
  "compilerOptions": {
    "target": "es2016",
    "module": "commonjs",
    "outDir": "dist",
    "rootDir": "src",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": ["es2016", "esnext.asynciterable"]
  }
}

Когда я компилирую с tsc, я не получаю никакой ошибки, но у меня появляется эта ошибка при запуске приложенияnode dist/server.js:

(function (exports, require, module, __filename, __dirname) { import { Field, ID, Int, ObjectType } from 'type-graphql';
SyntaxError: Unexpected token {

Не могли бы вы помочь мне решить эту ошибку?Спасибо за продвижение

1 Ответ

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

Похоже, ts-loader не используется.Я думаю, это потому, что вы указали test в виде строки вместо регулярного выражения.Попробуйте удалить окружающие одинарные кавычки.См. Пример в документации .

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