我正在尝试从Maven执行npm构建,但是在正确设置命令行参数时遇到问题。
我正在使用以下代码段
class Parent extends React.Component {
constructor () {
super()
this.state = {
modalContent: '',
childComponent: ''
}
this.getModalContent = this.getModalContent.bind(this)
this.clickableHandler = this.clickableHandler.bind(this)
}
getModalContent () {
let ModalBody = (
<div onClick={this.clickableHandler}>
</div>
)
this.setState({modalContent: ModalBody})
}
clickableHandler () {
this.setState({
childComponent: yourData
})
}
render () {
return (
<div>
<button onClick={this.getModalContent}>Open Modal</button>
<ModalComponent modalContent={this.state.modalContent}
childComponent={this.state.childComponent} />
</div>
)
}
}
export default Parent
class ModalComponent extends Component {
render () {
return (
<div>
{this.props.modalContent}
<AnotherChild childBody={this.props.childComponent} />
</div>
)
}
}
export default ModalComponent
我尝试了<execution>
<id>npm run build (compile)</id>
<goals>
<goal>exec</goal>
</goals>
<phase>compile</phase>
<configuration>
<executable>npm</executable>
<workingDirectory>${my.source.directory}</workingDirectory>
<arguments>
<argument>run</argument>
<argument>build</argument>
<argument>--base-href</argument>
<argument>/my-base-href/</argument>
</arguments>
</configuration>
</execution>
的几种变体,但是都没有用。
<argument>
<argument>--base-href</argument>
<argument>/my-base-href/</argument>
or
<argument>-base-href</argument>
<argument>/my-base-href/</argument>
or
<argument>"--base-href"</argument>
<argument>/my-base-href/</argument>
or
<argument><![CDATA[--base-href]]></argument>
<argument>/my-base-href/</argument>
or
<commandlineArgs>run build --base-href /my-base-href/</commandlineArgs> (instead of <arguments>)
leads to
$ npm build "/my-base-href/"
problem: missing '--base-href'
<argument>"--base-href /my-base-href/"</argument>
leads to
$ npm build
problem: missing '--base-href "/my-base-href/"'
<argument>‐‐base-href</argument>
<argument>/my-base-href/</argument>
leads to
problem: pom error, could not resolve entity named 'hyphen' (same with ‐)
这是怎么回事?为什么Maven会吃以<argument>\-\-base-href</argument>
<argument>/my-base-href/</argument>
leads to
$ ng build "\-\-base-href" "/my-base-href/"
problem: escape chars ending up in command
开头的参数,我该如何降低它的鲜美程度?
(尝试使用Windows 8.1,maven 3.3.9和3.5.4,exec插件1.3.9和1.6.0)
答案 0 :(得分:0)
我不确定是否完全一样,但是我需要将--coverage标志传递给测试运行。为此,我最终需要先给--
:npm run test -- --coverage
<argument>run</argument>
<argument>test</argument>
<argument>--</argument>
<argument>--coverage</argument>