Alfresco разделяют структуру AMP, обязательно упаковывают внешнюю библиотеку JS для компиляции yuicompressor - PullRequest
0 голосов
/ 28 октября 2019

У меня есть Alfresco Community 5.2 и пользовательская библиотека JS для объединения в один файл amp, потому что мне нужно использовать эту библиотеку внутри общего ресурса.

Я пытался поместить ее в shareamp\web\js\, как визображение, но я не могу скомпилировать проект из-за ошибки минимизации YUICompressor, возможно, библиотека JS слишком нова и несовместима с YUICompressor.

lib position

Ошибка следующая

[ERROR] Failed to execute goal net.alchim31.maven:yuicompressor-maven-plugin:1.5.1:compress (compress-js) on project MyProjectShare: Execution compress-js of goal net.alchim31.maven:yuicompressor-maven-plugin:1.5.1:compress failed: Compilation produced 3 syntax errors. -> [Help 1]

Я также попытался поместить ее в папку META-INF\resources, но она не работает. Я могу скомпилировать проект и создать файл .amp, но библиотеки внутри усилителя нет, как будто он был проигнорирован.

lib position #2

Очевидно,Я не могу изменить или удалить библиотеку, а также не могу сделать ее совместимой с ES5 с внешним инструментом, таким как babel.js.

Где находится правильное место для размещения библиотеки JS? Можно ли отключить yuicompressor также для производства? (и это правильно?), Могу ли я настроить maven для помещения библиотеки обратно в усилитель в разделе <build> (и как, если это правильно?)

Спасибо всем.

PS. Я также хотел бы знать, вызвана ли эта проблема неправильным подходом к расширению alfresco / share, и, если да, то каким должен быть наилучший метод.

1 Ответ

0 голосов
/ 28 октября 2019

Мне удалось обойти проблему с добавлением ресурсов во время установки maven, то есть создания усилителя.

Я поместил библиотеку JS в папку WEB-INF, как объяснено в вопросе, поэтому в основномalfresco игнорирует их во время компиляции, и они не будут сжаты / уменьшены с помощью YUICompressor. На этапе проверки процесса установки maven эти файлы копируются по правильному пути js.

Кажется, все работает должным образом.

Я настроил подключаемый модуль maven-resources-plugin, воткод

<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
        <execution>
        <id>copy-resources</id>
        <!-- here the phase you need -->
        <phase>validate</phase>
        <goals>
            <goal>copy-resources</goal>
        </goals>
        <configuration>
            <outputDirectory>${basedir}/target/amp/web/BNextScanShare/js/DynamicWebTWAIN/</outputDirectory>
            <resources>          
                <resource>
                    <directory>/src/main/resources/META-INF/resources/DynamicWebTWAIN</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>              
        </configuration>            
    </execution>
    </executions>
</plugin>
...