Alfresco共享AMP结构,打包外部JS库而无需编译yuicompressor

问题描述 投票:0回答:1

我有Alfresco Community 5.2和一个自定义JS库,可以将它们捆绑在一个amp文件中,因为我需要在share内部使用该库。

[我试图将它放在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文件,但是该库在amp中不存在,就像它已被忽略一样。

lib position #2

显然,我无法更改或删除该库,也无法使其与诸如babel.js之类的外部工具兼容于ES5。

放置JS库的正确位置在哪里?是否可以禁用yuicompressor进行生产? (这是正确的吗?),我可以配置maven将该库放回<build>部分的放大器中(以及它是否正确吗?)

感谢所有人。

PS。我也想知道我面临的这个问题是否是由于对露天/股票扩展使用错误的方法引起的,如果是,那么最佳实践应该如何。

javascript alfresco alfresco-share
1个回答
0
投票

我已经能够解决在maven安装过程中添加资源的问题,即创建放大器。

我将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>
© www.soinside.com 2019 - 2024. All rights reserved.