2013-08-16 16 views
11

Tôi đã cài đặt nodejs (npm) và npm install grunt-cli trên hộp ubuntu của tôi. Tôi đã tìm thấy cấu hình maven-ant-chạy tốt đẹp cho maven:Không thể chạy npm và bash từ maven

https://gist.github.com/nadavdav/5308453

nhưng khi tôi chạy mvn clean install từ dòng lệnh tôi nhận được:

building: 
    [echo] --------------------------------------------------- 
    [echo] -- NPM INSTALL -- 
    [echo] --------------------------------------------------- 
    [exec] /usr/bin/npm: npm: line 2: syntax error near unexpected token `;' 
    [exec] /usr/bin/npm: npm: line 2: `;(function() { // wrapper in case we're in module_context mode' 

Tại sao NPM thất bại khi chạy bên trong maven?

EDIT: Bây giờ tôi đã cập nhật các cấu hình để:

<!-- <exec executable="bash" dir="${project.basedir}" osfamily="unix" --> 
<!-- failonerror="true"> --> 
<!-- <arg line="npm install" /> --> 
<!-- </exec> --> 

<!-- WORKING --> 
    <exec executable="npm" dir="${project.basedir}" failonerror="true"> 
    <arg value="install" /> 
    </exec> 

mà hoạt động. Nhưng kỳ lạ là nó không hoạt động khi chạy phiên bản gốc.

+0

Cảm ơn, đã giải quyết sự cố của tôi - bạn có nhớ đăng câu trả lời (chứ không phải là chỉnh sửa câu hỏi của bạn) và chấp nhận câu trả lời này không? – olsn

Trả lời

8

Vì trong ví dụ đầu tiên, bạn đang chạy 'bash' với đối số 'npm install', giống như chạy bash npm install trên dòng lệnh. Điều này nói với bash để cố gắng chạy 'npm' như là một kịch bản shell, nhưng kịch bản npm trong đường dẫn của bạn là mã javascript. Hãy thử:

john-warden-mba-2012:nodetest john$ bash npm install 
/opt/local/bin/npm: npm: line 2: syntax error near unexpected token `;' 
/opt/local/bin/npm: npm: line 2: `;(function() { // wrapper in case we're in module_context mode'