รันโหนดด้วยแฟล็ก --harmony เสมอ


15

ฉันต้องการเรียกใช้ Node.JS ด้วย--harmonyธงเสมอ มีวิธีการเปิดใช้งานการตั้งค่าสถานะนี้อย่างง่ายดายหรือไม่

(หมายเหตุ: ฉันกำลังใช้งาน Windows ดังนั้นฉันมีสิทธิ์เข้าถึง Cygwin หรือ Mingw เป็นเชลล์เท่านั้น)

คำตอบ:


14

หากคุณกำลังพูดถึงการทำงานแบบโต้ตอบคุณสามารถใช้ bash aliasได้ ใส่สิ่งนี้ใน~/.bashrc:

alias node="node --harmony"

(สำหรับด้านล่าง: โปรดทราบว่าเมื่อฉันพูดว่า "executable" ฉันไม่ได้หมายถึงไบนารีหรือ "ไฟล์ exe" "Executables" รวมถึงสิ่งที่สามารถดำเนินการได้โดยไม่ต้องใช้ล่ามแปลภาษาซึ่งรวมถึงสคริปต์ที่มี shebang )

หากคุณต้องการเรียกใช้ไฟล์ปฏิบัติการเช่นภายในสคริปต์อื่นคุณสามารถสร้างเชลล์สคริปต์ที่เรียกใช้เป้าหมายด้วยค่าสถานะพิเศษ:

สร้าง a nodeHarmonyและวางไว้ในพา ธ การค้นหาของคุณเช่น/usr/local/bin:

#!/bin/sh

node --harmony "$@"

จากนั้นchmod a+xมัน

จากนั้นดำเนินการnodeHarmonyทุกครั้งที่คุณต้องการให้มีการผนวกค่าสถานะนั้น หากคุณต้องการแทนที่nodeไฟล์ปฏิบัติการคุณอาจเปลี่ยนชื่อnodeเป็นอย่างอื่น (เช่นnode_original) ตั้งชื่อสคริปต์nodeและใช้node_originalภายในสคริปต์

คุณสามารถสร้างสคริปต์ชุดงาน Windows ที่เทียบเท่าซึ่งจะทำงานนอก Cygwin / MinGW:

@echo off

node --harmony %*

นี้จะมีพฤติกรรมในทำนองเดียวกัน แต่อาจมีผลกระทบกับชุดแปลกโต้แย้งบางเพราะรายการจะได้รับการแยกวิเคราะห์เป็นครั้งที่สอง - nodeเมื่อเมื่อรันสคริปต์ชุดและครั้งภายในสคริปต์ที่เมื่อมีการดำเนิน วิธีการแก้ปัญหาบางอย่างที่นี่


4

หากคุณพร้อมที่จะคอมไพล์ node.js อีกครั้งบทความ วิธีรับความสามัคคีใน node.js ของคุณบอกว่า:

เมื่อคุณมีซอร์สโค้ดแล้วให้เปิด deps/v8/src/flag-definitions.hและมองหา Line 115 เปลี่ยนค่าสถานะจาก false เป็น True:

DEFINE_bool(harmony, true, "enable all harmony features")

จากนั้นรวบรวมโหนด:

./configure && make && make install


0

คุณสามารถแก้ไขไฟล์ node.js และ:

  1. ค้นหาตัวแปรที่ตรวจสอบการตั้งค่าสำหรับ "--harmony" หรือ "harmony" สิ่งที่ต้องการ:

    if (variable_name == 'harmony') ...
    
  2. ตั้งค่าตัวแปรนี้ก่อนหน้าในรหัส:

    var this_variable_name = 'harmony';
    

0

ทำไมคุณไม่กำหนดค่าpackage.jsonด้วยคำสั่งสคริปต์ ?

ตัวอย่างเช่นเพิ่มไปยัง package.json:

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

จากนั้นเรียกใช้เป็น cmd (ในไดเรกทอรีโครงการ):

เริ่มต้นนาที

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.