Проблема загрузки / узла-babel, которая появилась с ОЧЕНЬ небольшими изменениями в моем машинописном коде? - PullRequest
0 голосов
/ 11 июля 2019

У меня большой проект, который отлично работает. Сегодня я понял, что мне нужно внести изменения в один метод в одном классе. Поэтому я изменил один метод в Task.destroy (), добавив только одну строку:

public destroy(clientId: string, userData: UserData, taskData: TaskData): Promise<boolean> {
    const tasks = Task.getTasks();
  new --> const lists = List.getLists();

    assert(Model.isDataOnly(taskData));
    // remove this task from all the lists....
  }

До этого изменения мой сервер работает как положено. После критического изменения, когда я запускаю свой сервер, я вижу:

NODE_ENV: ====================[ development: laptop.dynazu.com ]====================
DOMAIN:https://laptop.dynazu.com
Debugger listening on ws://127.0.0.1:9229/cb0c2453-7991-4e7e-8cc1-c81afa519198
For help, see: https://nodejs.org/en/docs/inspector
/home/joel/workspace/Tracker/server/api/user/user.controller.js:75
var users = _user2.User.getUsers();
                        ^

TypeError: Cannot read property 'getUsers' of undefined
    at Object.<anonymous> (user.controller.ts:34:20)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Module._compile (/home/joel/workspace/Tracker/node_modules/pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:770:10)
    at Object.newLoader [as .js] (/home/joel/workspace/Tracker/node_modules/pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:628:32)
    at Function.Module._load (internal/modules/cjs/loader.js:555:12)
    at Module.require (internal/modules/cjs/loader.js:666:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (index.ts:3:1)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Module._compile (/home/joel/workspace/Tracker/node_modules/pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:770:10)
    at Object.newLoader [as .js] (/home/joel/workspace/Tracker/node_modules/pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:628:32)
    at Function.Module._load (internal/modules/cjs/loader.js:555:12)

Сначала я подумал, что, возможно, проблема в ng или инструменте сборки. Однако, когда я сделал сравнение с сгенерированным кодом (js и т. Д.), Не было никаких изменений, кроме крошечных ожидаемых.

И, глядя на ошибку и трассировку стека, кажется, что это может быть проблема загрузки ??? Кто-нибудь видел что-нибудь подобное?

user.controller.ts: 34 is:

const users = User.getUsers();

и User.getUsers очень просты:

  public static getUsers(): monk.ICollection<UserData> {
    log('getUsers()...', db);
    return db.get('users');
  }

, который явно никогда не достигается. Следовательно, это похоже на проблему с нагрузкой? возможно, вавилонский ??

Есть ли способ проверить это без вавилонского узла?


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

 node_modules/.bin/bower src -d output

А потом сделал

node output/app.js 

в надежде на успех. Вместо этого я увидел:

    NODE_ENV: ====================[ development: laptop.dynazu.com ]====================
    DOMAIN:https://laptop.dynazu.com
    /home/joel/workspace/Tracker/server/output/api/user/user.controller.js:75
    var users = _user2.User.getUsers();
                            ^

    TypeError: Cannot read property 'getUsers' of undefined
        at Object.<anonymous> (/home/joel/workspace/Tracker/server/output/api/user/user.controller.js:75:25)
        at Module._compile (internal/modules/cjs/loader.js:759:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
        at Module.load (internal/modules/cjs/loader.js:628:32)
        at Function.Module._load (internal/modules/cjs/loader.js:555:12)
        at Module.require (internal/modules/cjs/loader.js:666:19)
        at require (internal/modules/cjs/helpers.js:16:16)
        at Object.<anonymous> (/home/joel/workspace/Tracker/server/output/api/user/index.js:9:42)
        at Module._compile (internal/modules/cjs/loader.js:759:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
        at Module.load (internal/modules/cjs/loader.js:628:32)
        at Function.Module._load (internal/modules/cjs/loader.js:555:12)
        at Module.require (internal/modules/cjs/loader.js:666:19)
        at require (internal/modules/cjs/helpers.js:16:16)
        at Object.<anonymous> (/home/joel/workspace/Tracker/server/output/auth/auth.service.js:18:14)
        at Module._compile (internal/modules/cjs/loader.js:759:30)

точно так же, как и раньше!

По крайней мере, теперь у меня есть полностью переведенный js, и я смогу определить, что, по-видимому, нарушается в переводе babel! (Надеюсь: -).

ПРОБЛЕМА хуже, чем ожидалось. Глядя на сгенерированный код, кажется, нет никаких проблем. Кажется, сама нагрузка прерывается, так как я сейчас использую babel напрямую и запускаю 'node app.js' ... Посмотрим ....

Сама загрузка выдает ошибку и удаляет модуль, поэтому я вижу эту ошибку, которая ничего не значит о 'TypeError: Невозможно прочитать свойство' getUsers 'undefined', которое является красной сельдью ... Я копаю глубже ... но немного невежественен в этом пункте.

1 Ответ

0 голосов
/ 13 июля 2019

Я обнаружил, что после долгих царапин и разочарований в голове мне пришлось устранить любые косвенные изменения при экспорте классов. Например для списка, у меня был список / index.ts:

-export * from './list.model';
-export * from './list.listData';

А затем будет использовать импорт, такой как:

import { List, ListData } from '../list';

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

Когда я изменил импорт выше на:

import { List } from '.../list/list.model';
import { ListData } from '.../list/listData';

Все бы скомпилировалось и работало без проблем.

Надеюсь, это поможет другим !!!

...