2015-07-18 12 views
16

Tôi mới làm quen với khung chơi. Vui lòng giải thích ý nghĩa của cảnh báo dưới đây.Cảnh báo: phát hiện node.js không thành công, sbt sẽ sử dụng công cụ JavaScript Trireme JavaScript dựa trên Rhino

Warning: node.js detection failed, sbt will use the Rhino based Trireme JavaScript engine instead to run JavaScript assets compilation, which in some cases may be orders of magnitude slower than using node.js 

Tôi không muốn bất cứ điều gì mà làm chậm ứng dụng của tôi vì vậy xin tư vấn nếu tôi nên thay đổi Engine JS để Node.js, nhưng dự án play framework của tôi đang sử dụng Java trên phía máy chủ.

+2

https://www.playframework.com/documentation/2.4.x/Assets#Managed-assets – danielnixon

Trả lời

10

Bạn cần cài đặt Node.js và sau đó yêu cầu công cụ sbt/java sử dụng nó.

brew install node 

Sửa .bash_profile và thêm:

export SBT_OPTS="${SBT_OPTS} -Dsbt.jse.engineType=Node -Dsbt.jse.command=$(which node)" 

này loại bỏ các cảnh báo cho tôi trên OSX

0

trong Windows 10:

Cài đặt Node.js từ https://nodejs.org/en/ (Trình cài đặt sẽ tự động thêm Node.js để PATH của bạn)

sau đó thêm:

export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node" 

để plugins.sbt của bạn trong

. ./project/plugins.sbt 

Làm việc cho tôi - cảnh báo đã biến mất!

EDIT: Rõ ràng plugins.sbt là sai chỗ để thêm

export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node" 

... mặc dù cảnh báo biến mất khi tải ứng dụng của tôi, nó đã dẫn đến một lỗi khi tái giới thiệu bản ứng dụng một cặp vợ chồng số giờ sau:

error: not found: value export

Tôi rất vui nếu có ai có thể giúp và cho tôi biết địa điểm xuất khẩu.

+0

'xuất' là lệnh bash. Rất có thể, bạn không chạy sbt trên Windows bằng cách sử dụng bash wrapper, vì vậy công thức không áp dụng cho Windows. Hầu hết có thể, một cái gì đó như 'set' có thể được sử dụng trong một' .bat' wrapper thay thế. –

4

Trong Windows:

  • Install node.js
  • Đến Control Panel - System and Security - Hệ thống - Advanced system settings
  • Bấm Environment Variables ...
  • Tìm kiếm trong Biến hệ thống cho SBT_OPTS
    • Nếu như vậy tồn tại, nhấp Sửa ... và nối -Dsbt.jse.engineType=Node-giá trị Variable
    • Nếu như không tồn tại, nhấp mới ... và viết SBT_OPTS-tên Variable-Dsbt.jse.engineType=Node để giá trị Variable
  • Bấm OK-OK-OK
  • Khởi động lại bất kỳ dấu nhắc lệnh (cmd, PowerShell) hiện đang chạy Chơi Khung
1

Là một thay thế để thiết lập các biến môi trường, bạn có thể thêm dòng này vào tập tin build.sbt của bạn:

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node 

Xem: https://github.com/sbt/sbt-js-engine

0

plugins SBT đòi hỏi một cơ JS chỉ được sử dụng trong quá trình xây dựng, và do đó thiếu Node.js chỉ chậm lại tài sản b giai đoạn uilding nếu bạn sử dụng bất kỳ.

Ứng dụng được xây dựng không bị ảnh hưởng.

Dù sao, bạn có thể muốn cài đặt node.js vào PATH của bạn, nơi nó sẽ được tự động phát hiện.

Các vấn đề liên quan