<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://chuvilin.pro/mediawiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://chuvilin.pro/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3AElena%2F%D0%98%D0%BD%D1%84%D0%BE</id>
		<title>Участник:Elena/Инфо - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://chuvilin.pro/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3AElena%2F%D0%98%D0%BD%D1%84%D0%BE"/>
		<link rel="alternate" type="text/html" href="https://chuvilin.pro/mediawiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Elena/%D0%98%D0%BD%D1%84%D0%BE&amp;action=history"/>
		<updated>2026-10-13T12:19:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.23.8</generator>

	<entry>
		<id>https://chuvilin.pro/mediawiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Elena/%D0%98%D0%BD%D1%84%D0%BE&amp;diff=4699&amp;oldid=prev</id>
		<title>Elena: Новая страница: «=Описание= Документ содержит общее описание и настройки для проектов, которые будут испо…»</title>
		<link rel="alternate" type="text/html" href="https://chuvilin.pro/mediawiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Elena/%D0%98%D0%BD%D1%84%D0%BE&amp;diff=4699&amp;oldid=prev"/>
				<updated>2017-11-09T13:46:12Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «=Описание= Документ содержит общее описание и настройки для проектов, которые будут испо…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Описание=&lt;br /&gt;
Документ содержит общее описание и настройки для проектов, которые будут использовать кастомные формы на механизме react, react-bootstrap.&lt;br /&gt;
&lt;br /&gt;
=Общее описание=&lt;br /&gt;
Существуют системные javascript сборки (bundle), которые располагаются в jar файлах и для загрузки в приложение используют стандартный механизм virtualdir.properties&lt;br /&gt;
&lt;br /&gt;
К таким сборкам относятся:&lt;br /&gt;
* ru.krista.frontend.bundle.core-runtime-bundle - сборка с lodash, polifill для fetch, polifil для babel и т.д.&lt;br /&gt;
* ru.krista.frontend.bundle.core-rackt-bundle - сборка для react, react-bootstrap, redux и другие сторонние библиотеки&lt;br /&gt;
* ru.krista.frontend.bundle.core-components-bundle - сборка с компонентами собственной разработки&lt;br /&gt;
* ru.krista.core.frontend.style.bootstrap-wrapper - обертка для bootstrap стилей и шрифтов&lt;br /&gt;
&lt;br /&gt;
=Как настроить свой проект=&lt;br /&gt;
Из проекта core2 были убраны все зависимости на javascript bundle, поэтому нужно подключать в предметном проекте самостоятельно.&lt;br /&gt;
&lt;br /&gt;
==Настройка главной pom проекта==&lt;br /&gt;
В pom всего проекта, которая наследуется от ru.krista.bootstrap.root.core-based, нужно указать правильную версию.&lt;br /&gt;
На текущий момент это 0.2.20. В этой сборке указывается адрес к правильному nexus с npm.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;parent&amp;gt;&lt;br /&gt;
	&amp;lt;groupId&amp;gt;ru.krista.bootstrap.root&amp;lt;/groupId&amp;gt;&lt;br /&gt;
	&amp;lt;artifactId&amp;gt;core-based&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;0.2.20&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;relativePath&amp;gt;&amp;lt;/relativePath&amp;gt;&lt;br /&gt;
&amp;lt;/parent&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же требуется прописать dependencyManagement для того, что бы в конкретных проектах не указывать версию для bundle с bootstrup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;dependencyManagement&amp;gt;&lt;br /&gt;
        &amp;lt;dependencies&amp;gt;&lt;br /&gt;
            &amp;lt;dependency&amp;gt;&lt;br /&gt;
                &amp;lt;groupId&amp;gt;ru.krista.core.frontend.style&amp;lt;/groupId&amp;gt;&lt;br /&gt;
                &amp;lt;artifactId&amp;gt;bootstrap-wrapper&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
                &amp;lt;version&amp;gt;${frontend.style.bootstrap-version}&amp;lt;/version&amp;gt;&lt;br /&gt;
            &amp;lt;/dependency&amp;gt;            &lt;br /&gt;
        &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
    &amp;lt;/dependencyManagement&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;properties&amp;gt;&lt;br /&gt;
        &amp;lt;frontend.style.bootstrap-version&amp;gt;3.3.5-core-styled&amp;lt;/frontend.style.bootstrap-version&amp;gt;&lt;br /&gt;
    &amp;lt;/properties&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Настройка проекта с кастомной формой ==&lt;br /&gt;
В pom необходимо прописать зависимости от jar с bundle. В принципе эти зависимости можно проставить в любом проекте, который потом попадет в application.war.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;dependencies&amp;gt;&lt;br /&gt;
        &amp;lt;dependency&amp;gt;&lt;br /&gt;
            &amp;lt;groupId&amp;gt;ru.krista.frontend.bundle&amp;lt;/groupId&amp;gt;&lt;br /&gt;
            &amp;lt;artifactId&amp;gt;core-runtime-bundle&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
            &amp;lt;version&amp;gt;1.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;
        &amp;lt;/dependency&amp;gt;&lt;br /&gt;
        &amp;lt;dependency&amp;gt;&lt;br /&gt;
            &amp;lt;groupId&amp;gt;ru.krista.frontend.bundle&amp;lt;/groupId&amp;gt;&lt;br /&gt;
            &amp;lt;artifactId&amp;gt;core-rackt-bundle&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
            &amp;lt;version&amp;gt;1.0.5&amp;lt;/version&amp;gt;&lt;br /&gt;
        &amp;lt;/dependency&amp;gt;&lt;br /&gt;
         &lt;br /&gt;
        &amp;lt;!--На текущий момент core-components-bundle еще не релизился, а это значит его нужно будет самостоятельно откомпилировать, что бы положить в свой maven --&amp;gt;&lt;br /&gt;
        &amp;lt;dependency&amp;gt;&lt;br /&gt;
            &amp;lt;groupId&amp;gt;ru.krista.frontend.bundle&amp;lt;/groupId&amp;gt;&lt;br /&gt;
            &amp;lt;artifactId&amp;gt;core-components-bundle&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
            &amp;lt;version&amp;gt;1.0.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;
        &amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;!-- Для bootstrap-wrapper версию ставить не надо т.к. мы ее прописали в dependencyManagement в главной pom проекта --&amp;gt;&lt;br /&gt;
        &amp;lt;dependency&amp;gt;&lt;br /&gt;
            &amp;lt;groupId&amp;gt;ru.krista.core.frontend.style&amp;lt;/groupId&amp;gt;&lt;br /&gt;
            &amp;lt;artifactId&amp;gt;bootstrap-wrapper&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
        &amp;lt;/dependency&amp;gt;&lt;br /&gt;
    &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Настрока package.json===&lt;br /&gt;
&lt;br /&gt;
В package.json нужно прописать зависимость от наших bundle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;quot;dependencies&amp;quot;: {&lt;br /&gt;
    &amp;quot;@krista/components&amp;quot;: &amp;quot;^1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;@krista/rackt&amp;quot;: &amp;quot;^1.0.2&amp;quot;,&lt;br /&gt;
    &amp;quot;@krista/runtime&amp;quot;: &amp;quot;^1.0.2&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Указав эти зависимости прописывать react, react-bootstrap и т.д. уже не нужно!'''&lt;br /&gt;
&lt;br /&gt;
В .config\webpack.config.js необходимо указать ManagedCommonReferencePlugin, который позволит не добавлять при компиляции своего проекта в bundle библиотеки типа react, react-bootstrap и прочие из списка поставляемых нами в общих bundle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  plugins: [&lt;br /&gt;
    new ManagedCommonReferencePlugin({manifest: require(&amp;quot;@krista/runtime&amp;quot;).production}),&lt;br /&gt;
    new ManagedCommonReferencePlugin({manifest: require(&amp;quot;@krista/rackt&amp;quot;).production}),&lt;br /&gt;
    new ManagedCommonReferencePlugin({manifest: require(&amp;quot;@krista/components&amp;quot;).production}),&lt;br /&gt;
...&lt;br /&gt;
    new AmdNamespaceForUmdLibrary(),&lt;br /&gt;
...&lt;br /&gt;
  ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Содержимое @krista/rackt 1.0.2===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;react&amp;quot;,&lt;br /&gt;
&amp;quot;react/addons&amp;quot;,&lt;br /&gt;
&amp;quot;react-dom&amp;quot;,&lt;br /&gt;
&amp;quot;classnames&amp;quot;,&lt;br /&gt;
&amp;quot;react-bootstrap&amp;quot;,&lt;br /&gt;
&amp;quot;react-prop-types&amp;quot;,&lt;br /&gt;
&amp;quot;react-overlays&amp;quot;,&lt;br /&gt;
&amp;quot;redux&amp;quot;,&lt;br /&gt;
&amp;quot;react-redux&amp;quot;,&lt;br /&gt;
&amp;quot;flux-standard-action&amp;quot;,&lt;br /&gt;
&amp;quot;react-router&amp;quot;,&lt;br /&gt;
&amp;quot;history&amp;quot;,&lt;br /&gt;
&amp;quot;reduce-reducers&amp;quot;,&lt;br /&gt;
&amp;quot;redux-thunk&amp;quot;,&lt;br /&gt;
&amp;quot;redux-actions&amp;quot;,&lt;br /&gt;
&amp;quot;redux-promise&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Содержимое @krista/runtime 1.0.2===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Immutable&lt;br /&gt;
fetch&lt;br /&gt;
lodash&lt;br /&gt;
babel-runtime&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка settings.xml для maven==&lt;br /&gt;
Для разработчика, который будет не только собирать jar с уже откомпилированными js, но и компилировать сам js, имеет смысл указать в settings.xml для maven следующий профиль.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;profiles&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Профиль для компиляции frontend приложений основанных на webpack --&amp;gt;&lt;br /&gt;
    &amp;lt;profile&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;rebuild-frontend-bundle&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;properties&amp;gt;&lt;br /&gt;
        &amp;lt;frontend.bundle.rebuild&amp;gt;true&amp;lt;/frontend.bundle.rebuild&amp;gt;&lt;br /&gt;
      &amp;lt;/properties&amp;gt;&lt;br /&gt;
    &amp;lt;/profile&amp;gt;&lt;br /&gt;
&amp;lt;/profiles&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;activeProfiles&amp;gt;&lt;br /&gt;
    &amp;lt;activeProfile&amp;gt;rebuild-frontend-bundle&amp;lt;/activeProfile&amp;gt;&lt;br /&gt;
&amp;lt;/activeProfiles&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Активация этого профиля, при выполнении сборки мавеном запустит и сборку webpack, т.е. откомпилирует js. Таким образом frontend разработчику не потребуется заботиться о том скомпилировал он js или нет. Мавен все соберет.&lt;br /&gt;
&lt;br /&gt;
Иначе, придеться мавен запускать так&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mvn -Dfrontend.bundle.rebuild&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Настройки .npmrc ==&lt;br /&gt;
Для того, что бы npm работал нормально в нашей сетке был поднят кэширующий прокси Nexus.&lt;br /&gt;
npm подцепит его если в файле .npmrc который располагается в каталоге пользователя в моем случае C:\Users\nsmirnov&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
registry=http://ntp-nexus3.krista.ru/repository/npm-all/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Публикация ==&lt;br /&gt;
npm login registry https://ntp-nexus3.krista.ru/repository/npm-hosted/ --scope krista&lt;/div&gt;</summary>
		<author><name>Elena</name></author>	</entry>

	</feed>