ฉันต้องการเรียกใช้ Node.JS ด้วย--harmony
ธงเสมอ มีวิธีการเปิดใช้งานการตั้งค่าสถานะนี้อย่างง่ายดายหรือไม่
(หมายเหตุ: ฉันกำลังใช้งาน Windows ดังนั้นฉันมีสิทธิ์เข้าถึง Cygwin หรือ Mingw เป็นเชลล์เท่านั้น)
ฉันต้องการเรียกใช้ Node.JS ด้วย--harmony
ธงเสมอ มีวิธีการเปิดใช้งานการตั้งค่าสถานะนี้อย่างง่ายดายหรือไม่
(หมายเหตุ: ฉันกำลังใช้งาน Windows ดังนั้นฉันมีสิทธิ์เข้าถึง Cygwin หรือ Mingw เป็นเชลล์เท่านั้น)
คำตอบ:
หากคุณกำลังพูดถึงการทำงานแบบโต้ตอบคุณสามารถใช้ 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
เมื่อเมื่อรันสคริปต์ชุดและครั้งภายในสคริปต์ที่เมื่อมีการดำเนิน วิธีการแก้ปัญหาบางอย่างที่นี่
หากคุณพร้อมที่จะคอมไพล์ 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
เห็นได้ชัดว่าhttps://www.npmjs.org/package/setflagsสามารถใช้เพื่อตั้งค่าสถานะที่รันไทม์ แต่ฉันไม่สามารถติดตั้งได้
คุณสามารถแก้ไขไฟล์ node.js และ:
ค้นหาตัวแปรที่ตรวจสอบการตั้งค่าสำหรับ "--harmony" หรือ "harmony" สิ่งที่ต้องการ:
if (variable_name == 'harmony') ...
ตั้งค่าตัวแปรนี้ก่อนหน้าในรหัส:
var this_variable_name = 'harmony';
ทำไมคุณไม่กำหนดค่าpackage.jsonด้วยคำสั่งสคริปต์ ?
ตัวอย่างเช่นเพิ่มไปยัง package.json:
"scripts": {
"start": "node --harmony server.js"
}
จากนั้นเรียกใช้เป็น cmd (ในไดเรกทอรีโครงการ):
เริ่มต้นนาที