Совместное использование кода между проектами с помощью веб-пакета и машинописного текста
У меня есть следующая структура:
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 в веб-пакете.
Каков рекомендуемый способ сделать что-то подобное?