jakub.gคำตอบของนั้นถูกต้อง แต่ตัวอย่างจากการใช้ grunt นั้นค่อนข้างซับซ้อน
ดังนั้นคำตอบที่ง่ายกว่าของฉัน:
- ส่งอาร์กิวเมนต์บรรทัดคำสั่งไปยังสคริปต์ npm
ไวยากรณ์สำหรับการส่งอาร์กิวเมนต์บรรทัดคำสั่งไปยังสคริปต์ npm:
npm run [command] [-- <args>]
ลองนึกภาพเรามีภารกิจเริ่มต้นในรอบต่อนาทีใน package.json เพื่อเริ่มต้นเซิร์ฟเวอร์ dev ของ webpack:
"scripts": {
"start": "webpack-dev-server --port 5000"
},
เราเรียกใช้จากบรรทัดคำสั่งด้วย npm start
ตอนนี้ถ้าเราต้องการส่งผ่านพอร์ตไปยังสคริปต์ npm:
"scripts": {
"start": "webpack-dev-server --port process.env.port || 8080"
},
ทำงานนี้และผ่านพอร์ตเช่น 5,000 ผ่านบรรทัดคำสั่งจะเป็นดังนี้:
npm start --port:5000
- ใช้ package.json config:
ตามที่กล่าวไว้โดยjakub.gคุณสามารถกำหนด params ใน config ของpackage.json
"config": {
"myPort": "5000"
}
"scripts": {
"start": "webpack-dev-server --port process.env.npm_package_config_myPort || 8080"
},
npm start
จะใช้พอร์ตที่ระบุในการกำหนดค่าของคุณหรือคุณสามารถแทนที่มันได้
npm config set myPackage:myPort 3000
- การตั้งค่าพารามิเตอร์ในสคริปต์ npm ของคุณ
ตัวอย่างของการอ่านชุดตัวแปรในสคริปต์ npm ของคุณ ในตัวอย่างนี้NODE_ENV
"scripts": {
"start:prod": "NODE_ENV=prod node server.js",
"start:dev": "NODE_ENV=dev node server.js"
},
อ่าน NODE_ENV ในserver.jsทั้งprodหรือdev
var env = process.env.NODE_ENV || 'prod'
if(env === 'dev'){
var app = require("./serverDev.js");
} else {
var app = require("./serverProd.js");
}
yargs
; พารามิเตอร์ทั้งหมดหลังจาก--
สามารถแยกวิเคราะห์ได้อย่างสมบูรณ์แบบในสคริปต์ของคุณ