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

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

  • Project1

    • 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 в веб-пакете.

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

0 ответов

Другие вопросы по тегам