angular-cli + mvn:无法启动构建

时间:2017-08-25 07:57:57

标签: angular maven angular-cli

我使用angular-cli生成了我的角度2项目。 由于项目和客户的限制,我无法升级到角度4。

我尝试使用frontend-maven-plugin用maven编译我的角度应用程序,但是当我启动mvn clean install时,构建脚本失败。

我收到了错误:

  

[ERROR]   ..pathToProject / node_modules / @ ngtools / JSON-架构/ SRC /架构级-factory.js:34   [错误] result.push(... indices); [ERROR]
   ^^^ [错误] [错误]语法错误:意外的令牌... [错误]在   在Module._compile上的exports.runInThisContext(vm.js:53:16)[ERROR]   (module.js:373:25)Object.Module._extensions..js的[ERROR]   (module.js:416:10)Module.load的[ERROR](module.js:343:32)   Function.Module._load中的[错误](module.js:300:12)[ERROR] at   Module.require(module.js:353:17)[ERROR] at require   (internal / module.js:12:17)Object的[ERROR]。   (..pathToProject / node_modules / @ ngtools / JSON-架构/ SRC / index.js:3:30)   Module._compile的[错误](module.js:409:26)[ERROR] at   Object.Module._extensions..js(module.js:416:10)[ERROR] [ERROR] npm   呃! Linux 4.4.0-92-generic [ERROR] npm ERR! ARGV   " .. pathToProject /节点/节点"   " .. pathToProject /节点/ node_modules / NPM / bin中/ NPM-cli.js"   "运行脚本" "建立" [ERROR] npm ERR! node v4.6.0 [ERROR] npm ERR! NPM   v2.15.9 [错误] npm ERR!代码ELIFECYCLE [ERROR] npm ERR! hsmt@0.0.0   build:ng build [ERROR] npm ERR!退出状态1 [ERROR] npm ERR!   [ERROR] npm ERR!在hsmt@0.0.0构建脚本' ng build'时失败。   [ERROR] npm ERR!这很可能是hsmt包的问题,   [ERROR] npm ERR!不是与npm本身。 [ERROR] npm ERR!告诉作者   你的系统失败了:[错误] npm ERR! ng build [ERROR]   错误的ERR!您可以获取有关如何为此打开问题的信息   项目:[ERROR] npm ERR! npm bugs hsmt

我的pom:

<build>
     <plugins>
    <plugin>
     <groupId>com.github.eirslett</groupId>
     <artifactId>frontend-maven-plugin</artifactId>
     <version>1.5</version>
     <executions>
       <execution>
         <id>install node and npm</id>
         <goals>
           <goal>install-node-and-npm</goal>
         </goals>
         <configuration>
           <nodeVersion>v4.6.0</nodeVersion>
           <npmVersion>v2.15.9</npmVersion>
         </configuration>
       </execution>

       <execution>
         <id>build</id>
         <goals>
           <goal>npm</goal>
         </goals>
         <configuration>
           <arguments>run-script build</arguments>
         </configuration>
         <phase>generate-resources</phase>
       </execution>

     </executions>
       </plugin>
     </plugins>
</build>

我的package.json:

{
  "name": "hsmt",
  "version": "0.0.0",
  "license": "MIT",
  "angular-cli": {},
  "scripts": {
    "ng": "ng",
    "start": "ng serve --proxy-config proxy.conf.json",
    "build": "ng build",
    "prod" : "ng build --prod",
    "test": "ng test",
    "pree2e": "webdriver-manager update --standalone false --gecko false",
    "e2e": "protractor",
    "prebuild": "npm install"
  },

2 个答案:

答案 0 :(得分:1)

你使用的是旧版本的nodejs和npm,你只需要切换到你在maven之外使用的版本。

在终端中运行以下命令:

npm --version
node --version

在我的计算机上,这些命令为nodejs输出v6.11.2,为npm输出3.10.10,因此pom.xml应如下所示:

<nodeVersion>v6.11.2</nodeVersion>
<npmVersion>3.10.10</npmVersion>

答案 1 :(得分:0)

实际上你不需要为该任务设置特定的前端插件。

如果在您的环境中,您可以运行npm run build,那么可以使用exec-maven-plugin:

 <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>install npm dependencies</id>
            <phase>initialize</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <workingDirectory>${project.basedir}</workingDirectory>
              <executable>npm</executable>
              <commandlineArgs>install</commandlineArgs>
            </configuration>
          </execution>
          <execution>
            <id>build webapp</id>
            <phase>compile</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <workingDirectory>${project.basedir}</workingDirectory>
              <executable>npm</executable>
              <commandlineArgs>run build</commandlineArgs>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>