У меня есть 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? Можно ли отключить юикомпрессор для производства? (и это правильно?), Могу ли я настроить maven, чтобы вернуть библиотеку в усилитель в разделе <build> (и как, если это правильно?)

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

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

0
Fjordo 28 Окт 2019 в 12:37
2
Можно ли пропустить минификацию? Если да, исключите сжатие YUI для этого конкретного JS?
 – 
Muralidharan Deenathayalan
28 Окт 2019 в 12:46
Да, мне разрешено, потому что библиотека, кстати, уже минифицирована, как мне это сделать?
 – 
Fjordo
28 Окт 2019 в 12:48
1
Вы используете сценарий Ant или сценарий maven для создания усилителя?
 – 
Muralidharan Deenathayalan
28 Окт 2019 в 12:50
Maven, pom унаследован от alfresco-sdk-parent 2.2.0
 – 
Fjordo
28 Окт 2019 в 12:51

1 ответ

Лучший ответ

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

Я поместил библиотеку JS в папку WEB-INF, как объясняется в вопросе, поэтому в основном на открытом воздухе они игнорируются во время компиляции, и они не будут сжаты / уменьшены 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>
0
Fjordo 28 Окт 2019 в 17:21
1
Это сработало, как вы ожидали? Если да, поделитесь подробностями, как вы пропустили опцию минимизации?
 – 
Muralidharan Deenathayalan
28 Окт 2019 в 14:08
Я не пропустил опцию минимизации, я предпочел добавить эти файлы в процессе сборки усилителя, поэтому их не было во время компиляции.
 – 
Fjordo
28 Окт 2019 в 17:18