我使用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"
},
答案 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>