Luôn chạy nút với cờ --harmony


15

Tôi luôn muốn chạy Node.JS với --harmonycờ. 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:


14

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 nodeHarmonyvà đặ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+xnó.

Sau đó thực hiện nodeHarmonybất cứ khi nào bạn muốn cờ đó được nối. Nếu bạn muốn thay thế nodetệp thực thi, có lẽ bạn có thể đổi tên nodethành thứ khác (ví dụ node_original), đặt tên cho tập lệnh nodevà sử dụng node_originaltrong 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 .


4

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.hvà 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


0

Bạn có thể chỉnh sửa tệp node.js và:

  1. Tìm kiếm một biến kiểm tra cài đặt của nó cho "- harmony" hoặc "hòa âm", đại loại như:

    if (variable_name == 'harmony') ...
    
  2. Đặt biến này sớm hơn trong mã:

    var this_variable_name = 'harmony';
    

0

Tại sao bạn không cấu hình gói.json bằng lệnh scripts ?

Ví dụ: thêm vào pack.json:

  "scripts": {
    "start": "node --harmony server.js"
  }

Sau đó chạy trong cmd (trong thư mục dự án):

bắt đầu npm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.