require.js文件从哪里生成?

时间:2016-04-19 22:20:00

标签: javascript angular maven gruntjs

我正在从这个例子中学习Angular 2 https://github.com/pkaul/maven-typescript-example

因此,在运行第3步(mvn jetty:run)之后,可运行的war文件夹将打包在example-webapp / target文件夹中。但是,有一个我不确定的文件。 在文件夹 example-webapp / target / example-webapp-0.1.0-SNAPSHOT / modules 下, require.js 文件,旧时间戳为2013-05-14

我想知道它来自何处以及它的用途。 我猜这个文件与example-webapp里面的pom.xml中定义的 requirejs-maven-plugin 插件有关。站立确认或更正。

<plugin>
    <groupId>com.github.mcheely</groupId>
    <artifactId>requirejs-maven-plugin</artifactId>
    <version>1.0.4</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>optimize</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <skip>true</skip><!-- NOT ENABLED AS A DEFAULT -->
        <configFile>${basedir}/src/build/js/optimize.js</configFile>
        <filterConfig>true</filterConfig>
    </configuration>
</plugin>

1 个答案:

答案 0 :(得分:1)

文件require.js来自Maven dependency

<dependency>
  <groupId>org.jszip.redist</groupId>
  <artifactId>require</artifactId>
  <version>2.1.6</version>
  <type>jszip</type>
</dependency>

项目使用jszip-maven-plugin来处理JavaScript库,就像它们是标准的Maven依赖项一样(如Spring或其他):

  

当你想在war项目中创建JSZip模块或使用那些JSZip模块时,使用JSZip的Maven插件。

该插件的一大优势在于,不是手动复制和下载require.js文件并将其放在webapp的正确位置,这使得构建完全自动且易于更新(您只需要更新依赖)。它与传统Java库的Maven依赖概念密切相关。

该插件将jszip Maven Central unpack them and put them where configuredrequirejs-maven-plugin下载这些JavaScript库:

<plugin>
    <groupId>org.jszip.maven</groupId>
    <artifactId>jszip-maven-plugin</artifactId>
    <extensions>true</extensions>
    <configuration>
        <mappings>
            <!-- copy all JSZIP dependencies to directory "modules" -->
            <mapping>
                <select>*:*</select>
                <path>modules</path>
            </mapping>
        </mappings>
    </configuration>
    <!-- -->
</plugin>

在这种情况下,它们会被复制到modules目录,这就是您所看到的输出。 <select>*:*</select>表示考虑所有jszip个依赖项,<path>modules</path>表示输出目录。

实际上,它与{{3}}无关,它可用于优化和压缩JavaScript文件。