Nuxt Typescript с пользовательской платформой сервера: TypeError: [Babel] - PullRequest
0 голосов
/ 16 марта 2020

Я часами изо всех сил пытался заставить Nuxt Typescript работать программно с пользовательской серверной платформой (узел Typescript / Express), но не могу.

Я предполагаю, что есть какой-то загрузчик или транспорт Конфигурация, которая может решить эту проблему, но поиск ничего не дал.

Базовая c структура файла ...

- private/ --> Custom server framework
- public/ --> Nuxt

Ошибка при сборке с node --require ts-node/register --require tsconfig-paths/register private/index.ts

your-service-name_1  | Module build failed (from ./node_modules/babel-loader/lib/index.js):
your-service-name_1  | TypeError: [BABEL] /root/dist/client.js: (0 , _private.makeAccessor) is not a function (While processing: "/root/node_modules/@nuxt/babel-preset-app/src/index.js")
your-service-name_1  |     at Object.<anonymous> (/root/node_modules/regenerator-transform/lib/meta.js:17:35)
your-service-name_1  |     at Module._compile (internal/modules/cjs/loader.js:701:30)
your-service-name_1  |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
your-service-name_1  |     at Module.load (internal/modules/cjs/loader.js:600:32)
your-service-name_1  |     at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
your-service-name_1  |     at Function.Module._load (internal/modules/cjs/loader.js:531:3)
your-service-name_1  |     at Module.require (internal/modules/cjs/loader.js:637:17)
your-service-name_1  |     at require (internal/modules/cjs/helpers.js:22:18)
your-service-name_1  |     at Object.<anonymous> (/root/node_modules/regenerator-transform/lib/emit.js:11:36)
your-service-name_1  |     at Module._compile (internal/modules/cjs/loader.js:701:30)
your-service-name_1  |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
your-service-name_1  |     at Module.load (internal/modules/cjs/loader.js:600:32)
your-service-name_1  |     at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
your-service-name_1  |     at Function.Module._load (internal/modules/cjs/loader.js:531:3)
your-service-name_1  |     at Module.require (internal/modules/cjs/loader.js:637:17)
your-service-name_1  |     at require (internal/modules/cjs/helpers.js:22:18)
your-service-name_1  | 
your-service-name_1  |  @ multi eventsource-polyfill webpack-hot-middleware/client?reload=true&timeout=30000&ansiColors=&overlayStyles=&name=client&path=/__webpack_hmr/client ./dist/client.js
// private/server.ts

// called from private/index.ts
  public async start(): Promise<number> {
    // Init Nuxt.js
    // Make sure to wait for Nuxt to load @nuxt/typescript-build before proceeding
    const nuxtConfig = await import('../nuxt.config')
    const nuxt = new Nuxt(nuxtConfig)
    await nuxt.ready()

    if (this.config.server.environment === 'local') {
      const builder = new Builder(nuxt)
      await builder.build()
    }

Здесь приведены соответствующие настройки в nuxt.config.js и tsconfig.nuxt.jso.

// nuxt.config.js

module.exports = {
  buildDir: 'dist',
  srcDir: 'public',
  mode: 'universal', 
  plugins: [
  ],
  buildModules: [
    '@nuxt/typescript-build',
    '@nuxtjs/vuetify'
  ],
  modules: [
    '@nuxtjs/axios',
  ],
  typescript: {
    tslint: 'tslint.json',
    tsconfig: 'tsconfig.nuxt.json'
  },
  build: {
    transpile: [
      'vuex-module-decorators'
    ],
    extend(config, ctx) {

    }
  }
}


// tsconfig.nuxt.json
{
  "compilerOptions": {
    "target": "es2018",
    "module": "esnext",
    "moduleResolution": "node",
    "allowJs": false,
    "declaration": false,
    "emitDecoratorMetadata": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "inlineSourceMap": true,
    "inlineSources": true,
    "noImplicitAny": false,
    "lib": [
      "esnext",
      "esnext.asynciterable",
      "dom"
    ],
    "baseUrl": ".",
    "paths": {
      "@config": [
        "configs/index.ts"
      ],
      "@enum": [
        "shared/types/enum"
      ],
      "@interface": [
        "shared/types/interface"
      ]
    } 
  },
  "exclude": [
    "./build",
    "./configs",
    "./node_modules",
    "./private",
    "./test"
  ]
}

1 Ответ

0 голосов
/ 20 марта 2020

Понял, что мне не хватает плагина.

    plugins: [
      new TsconfigPathsWebpackPlugin()
    ],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...