Я управляю несколькими проектами, некоторые из которых имеют зависимости друг от друга.
Каждый проект написан с использованием машинописного текста и создается с помощью веб-пакета.
Пока это мое дерево
- root
- tsconfig. json
- core
- dist
- webpack.config. js
- tsconfig. json (расширение root tsconfig)
- src
- project1
- dist
- webpack.config. js
- tsconfig. json (расширение root tsconfig)
- src
- js
- project1.ts (имеют зависимости от core.ts или core.d.ts)
core.ts
export class Core {
constructor() {
}
}
project1.ts
import {Core} from "../../../core/src/js/core";
class Project1 {
constructor() {
let test = new Core()
}
}
Если я запускаю tsc
из /project1
, сборка будет работать как положено. Но если я использую webpack с ts-загрузчиком, я получу ошибку
Module not found: Error: Can't resolve ...
мое правило из: /project1/webpack.config.js
{
test: /\.tsx?$/,
use: [{loader: 'ts-loader', options: {configFile: "tsconfig.json"}}],
exclude: /node_modules/,
},
Я безуспешно пытался добавить псевдоним
resolve: {
alias: {
Core : path.resolve(__dirname, "../core")
}
},
Итак, я думаю, что веб-пакет не может перейти на root, если он запускается из дочерней папки?
Я пытаюсь получить это дерево, потому что мне бы хотелось, чтобы каждый проект мог отдельно включать в ядро html
. js и пользовательский проект *. js
У меня может быть 30 разных проектов, поэтому я бы хотел, чтобы ядро. js загружалось отдельно, чтобы сохранить преимущества кэша браузера.
И сохраняйте преимущества типов в каждом проекте, просто используя типы Core или повторно используя метод из основного компонента.
Я думаю, я мог бы создать пакет с Core, а затем импортировать в каждый из них. проект, но у меня много дел для обновления каждого проекта только для небольших изменений. Также, как это работает с tsc
Может быть, это может быть с веб-пакетом, так как он использует tsconfig. json.
Любая идея приветствуется.