我对java web应用程序的角度4 UI仅取决于以下几个捆绑包。我从webapps root运行以下命令。应用程序正常。我想知道最好的做法,因为我是角色的新手。
npm install rxjs
npm install @angular/core@4.4.6 @angular/common@4.4.6 @angular/compiler@4.4.6 @angular/platform-browser@4.4.6 @angular/platform-browser-dynamic@4.4.6 @angular/router@4.4.6 @angular/forms@4.4.6 --save
npm install typescript@2.4.2 --save
npm install plugin-typescript@5.2.7 --save
我正在引用systemjs.config.js
中已安装的捆绑包,如下所示:
paths: {
'npm:' : 'node_modules/'
},
map: {
'@angular/core' : 'npm:@angular/core/bundles/core.umd.js'
.
.
}
查询:
node_modules
中包含整个war
node_modules
保留在项目根目录而不是webapps中,我该如何从systemjs.config.js
npm install @angular/cli
node_modules
,那么如何从systemjs.config.js
引用它(我更喜欢将其保留在项目中,而不是使用不同版本来干扰服务器中的其他应用程序)build.gradle
中包含哪些内容,以便在gradle构建时下载所需的包答案 0 :(得分:3)
正如@Oliver Charlesworth所说,Gradle有其局限性,但你可以创建一个自定义的gradle任务。
示例:
task npmInstall(type: Exec) {
workingDir 'src/main/webapp'
commandLine 'npm', 'install'
}
将构建依赖项添加到war
构建步骤
war {
dependsOn npmBuild
}
答案 1 :(得分:1)
正如Tim Hovius所说:您可以创建自己的任务。
如果您不希望它一直执行,则可以添加OnlyIf子句。
myTask.onlyIf(new Spec<Task>() {
boolean isSatisfiedBy(Task task) {
return isProductionEnvironment();
}
});
OR
您可以使用标准Groovy更智能地编写任务。 例如:
task doSomething {
doLast {
def file = new File("dummy.txt")
if (file.exists()) {
project.exec {
commandLine 'someCommand', 'parameter'
}
}
}
}
OR
例如在您的build.gradle中
task doSomething {
doLast {
...
}
}
doSomething.enabled = (some condition goes here)