Tôi luôn muốn chạy Node.JS với --harmony
cờ. Có cách nào để dễ dàng bật cờ này theo mặc định không?
(Lưu ý: Tôi đang chạy trên Windows, vì vậy tôi chỉ có quyền truy cập vào Cygwin hoặc Mingw dưới dạng shell.)
Tôi luôn muốn chạy Node.JS với --harmony
cờ. Có cách nào để dễ dàng bật cờ này theo mặc định không?
(Lưu ý: Tôi đang chạy trên Windows, vì vậy tôi chỉ có quyền truy cập vào Cygwin hoặc Mingw dưới dạng shell.)
Câu trả lời:
Nếu bạn đang nói về việc chạy tương tác, bạn có thể sử dụng bash alias
. Đặt cái này trong ~/.bashrc
:
alias node="node --harmony"
(Đối với bên dưới: lưu ý rằng khi tôi nói "thực thi", tôi không chỉ có nghĩa là nhị phân hoặc "tệp .exe". "Thực thi" bao gồm mọi thứ có thể được thực thi mà không cần gọi trình thông dịch, bao gồm các tập lệnh với shebang. )
Nếu bạn muốn chạy một tệp thực thi, ví dụ trong một tập lệnh khác, bạn có thể tạo một tập lệnh shell khởi chạy mục tiêu với cờ bổ sung:
Tạo một nodeHarmony
và đặt nó trong đường dẫn tìm kiếm của bạn, ví dụ /usr/local/bin
:
#!/bin/sh
node --harmony "$@"
Rồi chmod a+x
nó.
Sau đó thực hiện nodeHarmony
bất cứ khi nào bạn muốn cờ đó được nối. Nếu bạn muốn thay thế node
tệp thực thi, có lẽ bạn có thể đổi tên node
thành thứ khác (ví dụ node_original
), đặt tên cho tập lệnh node
và sử dụng node_original
trong tập lệnh.
Bạn cũng có thể tạo tập lệnh bó Windows tương đương, tập lệnh này sẽ hoạt động bên ngoài Cygwin / MinGW:
@echo off
node --harmony %*
Điều này sẽ hoạt động tương tự, nhưng có thể biểu hiện các hiệu ứng kỳ lạ với một số kết hợp đối số, vì danh sách sẽ được phân tích cú pháp hai lần - một lần khi thực thi tập lệnh bó và một lần trong tập lệnh khi thực thi node
. Một số cách giải quyết ở đây .
Nếu bạn đã sẵn sàng biên dịch lại node.js, bài viết Cách lấy sự hài hòa trong tệp node.js của bạn nói:
Khi bạn đã có mã nguồn, hãy mở ra
deps/v8/src/flag-definitions.h
và tìm Dòng 115. Thay đổi cờ từ false thành true:DEFINE_bool(harmony, true, "enable all harmony features")
Sau đó biên dịch Node:
./configure && make && make install
Rõ ràng https://www.npmjs.org/package/setflags có thể được sử dụng để đặt cờ khi chạy, tuy nhiên tôi không thể cài đặt nó .