Alfresco共享AMP结构,打包外部JS库不编译yuicompressor
Alfresco share AMP structure, pack an external JS library without fail to compile yuicompressor
我有 Alfresco Community 5.2 和一个自定义 JS 库,可以捆绑在一个 amp 文件中,因为我需要在共享中使用该库。
我试过把它放在shareamp\web\js\
下,如图,但是因为YUICompressor minify错误我无法编译项目,可能是JS库太新,与YUICompressor不兼容。
错误如下
[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 中不存在该库,就像它已被忽略一样。
显然我无法更改或删除该库,我也无法使其 ES5 与 babel.js 等外部工具兼容。
放置JS库的正确位置在哪里?是否可以为生产禁用 yuicompressor? (它是正确的吗?),我可以配置 Maven 将库放回 <build>
部分的 amp 中(如果它是正确的怎么办?)
感谢大家。
PS. 我也想知道我面临的这个问题是否是由 alfresco/share 扩展的错误方法引起的,并且,如果是这样,最佳做法应该如何。
我已经能够解决在 maven 安装期间添加资源的问题,即 amp 创建。
我把 JS 库放在 WEB-INF
文件夹下,正如问题中所解释的,所以基本上 alfresco 在编译时忽略它们,它们不会被 YUICompressor 获取 compressed/minified。在 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>
我有 Alfresco Community 5.2 和一个自定义 JS 库,可以捆绑在一个 amp 文件中,因为我需要在共享中使用该库。
我试过把它放在shareamp\web\js\
下,如图,但是因为YUICompressor minify错误我无法编译项目,可能是JS库太新,与YUICompressor不兼容。
错误如下
[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 中不存在该库,就像它已被忽略一样。
显然我无法更改或删除该库,我也无法使其 ES5 与 babel.js 等外部工具兼容。
放置JS库的正确位置在哪里?是否可以为生产禁用 yuicompressor? (它是正确的吗?),我可以配置 Maven 将库放回 <build>
部分的 amp 中(如果它是正确的怎么办?)
感谢大家。
PS. 我也想知道我面临的这个问题是否是由 alfresco/share 扩展的错误方法引起的,并且,如果是这样,最佳做法应该如何。
我已经能够解决在 maven 安装期间添加资源的问题,即 amp 创建。
我把 JS 库放在 WEB-INF
文件夹下,正如问题中所解释的,所以基本上 alfresco 在编译时忽略它们,它们不会被 YUICompressor 获取 compressed/minified。在 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>