Как интегрировать TypeScript, SASS и конкатенацию в мой проект Play?
Вот что у меня есть:
- клиентская логика приложения написана на TypeScript
- мои таблицы SASS
- различные сторонние компоненты со своими простыми JS и CSS
Я хотел бы, чтобы все это было встроено в один файл JS и один файл CSS. Мне нужно было бы указать порядок, в который включается JS из моих файлов TS. Моя структура каталогов стандартная.
.
├── app
│ ├── assets
│ │ └── js
│ │ ├── build.ts
│ │ ├── components
│ │ │ └── test.ts
│ │ ├── messaging.ts
│ │ ├── main.ts
│ │ └── vue.d.ts
└── public
├── css
│ └── *.css
├── dashboard
│ ├── assets
│ │ └── <some component>
│ │ ├── *.css
│ │ └── *.min.js
├── fonts
│ └── *.{otf,svg,ttf,woff,woff2}
├── images
│ └── *.{jpg.png}
└── js
└── *.min.js
я имею sbt-typescript
а также sbt-rjs
установлен, и это в конце стандарта build.sbt
:
JsEngineKeys.engineType := JsEngineKeys.EngineType.Node
TypescriptKeys.moduleKind in TypescriptKeys.typescript := "amd"
pipelineStages := Seq(rjs)
//RjsKeys.appDir := file(".")
RjsKeys.mainConfig := "build"
RjsKeys.mainModule := "main"
Тот build.ts
выглядит так:
({
baseUrl: ".",
paths: {
},
name: "main",
out: "main-built.js"
})
И в моем HTML у меня есть:
<script data-main="@routes.Assets.versioned("js/main.js")" type="text/javascript" src="@routes.Assets.versioned("lib/requirejs/require.js")"></script>
Все это довольно тесно связано (я никогда раньше не использовал TypeScript или RequireJS), но, похоже, это работает для моих битов TypeScript как в dev, так и в промышленной сборке. (Я еще не добавил SASS.)
Если это пока правильный подход, как правильно включить все остальное, чтобы оно все еще работало в разработке и производстве? Я пишу другой профиль сборки для RequireJS, или я должен просто использовать sbt-concat
?