Совместное использование кода между проектами с помощью веб-пакета и машинописи - PullRequest
0 голосов
/ 03 июля 2018

У меня следующая структура:

  • Проект1

    • app.ts
    • tsconfig.json
    • webpack.config.js
  • ProjectShared

    • shared.ts
    • tsconfig.json
    • webpack.config.js

ProjectShared создает DllPlugin с «./shared.ts», например, «jquery» и Project1 ссылаются на него. В мой HTML-код Project1 я хочу включить ссылки на vendor.js и bundle.js.

Теперь, когда я импортирую, например, jquery из Project1, он использует код из DLL, чтобы эта часть работала как положено. (./node_modules/jquery одинаково в обоих контекстах)

Однако, если я импортирую «../ProjectShared/shared», он компилируется, но этот код не включается из DLL, а снова в пакет. (../ProjectShared/shared.ts - это не то же самое, что ./shared.ts)

Если я затем переключу контекст ReferencePlugin на ../ProjectShared/, он будет работать, но тогда jquery не будет использоваться из DLL. (./node_modules/jquery! = ../ProjectShared/node_modules/jquery)

Я понимаю, почему это происходит (в разных контекстах), но что, если я хочу разделить код между этими двумя проектами, не перемещая их в модули, но также желая, чтобы модули были также доступны для совместного использования?

Я вижу, что это может работать, если вместо «jquery» я использую «../ProjectShared/node_modules/jquery», тогда контекст снова будет таким же. Но это выглядит уродливо, даже если я использую пути в tsconfig или resol.alias в веб-пакете.

Каков рекомендуемый способ сделать что-то подобное?

...