Có thể gọi ra để lấy khóa từ yargs khi sử dụng làm đối số tập lệnh npm không?npm script pass tham số/đối số cho kịch bản lệnh bằng cách sử dụng yargs
loại người dùng trong thiết bị đầu cuối OSX:
npm run scaffold --name=blah
mà thực hiện trong package.json:
"scaffold" : "node ./scaffold/index.js -- "
Điều này dẫn đến
const yargs = require('yargs').argv
if (yargs) {
console.log(yargs);
console.log(yargs.name);
process.exit(1)
}
...
result:
{ _: [], '$0': 'scaffold/index.js' }
undefined
chỉ này hoạt động nếu tôi cứng mã trong package.json "scaffold" : "node scaffold/index.js --name=blah"
, nhưng tôi cần điều này để có thể cấu hình được.
Như tôi đã nói tôi đang sử dụng arg, vì nó xuất hiện để làm cho nó dễ dàng để lấy chìa khóa theo tên (như trái ngược với một mảng). Mở để đề xuất.
Tôi đang thiếu gì?
cập nhật 2017/11/07 liên quan: Sending command line arguments to npm script
Tuy nhiên, đi qua trong commandline 1: npm run scaffold name=hello
HOẶC 2: npm run scaffold --name=hello
sản lượng:
1: { _: [], '$0': 'scaffold/index.js' }
2: { _: [ 'name=hello' ], '$0': 'scaffold/index.js' }
Vẫn không thể nhìn thấy một cách để lấy lại tài sản yargs.name
. Vẫn chưa được xác định.
Cập nhật 13-07-2017
Đối với thời gian được, tôi đã từ bỏ. Nó dường như không thể. Tôi chạy kịch bản bằng tay trong thiết bị đầu cuối. Ví dụ:
node ./scaffold/index.js --name=blah
Hình ảnh bên dưới hiển thị trực tiếp kịch bản nút thay vì chạy qua tập lệnh npm. Tôi đã thêm https://www.npmjs.com/package/nopt mô-đun nút để xem liệu nó có giúp (không). process.argv.name
vẫn chưa được xác định khi chạy qua tập lệnh npm.
Cập nhật 18-07-2017
Added github dụ: https://github.com/sidouglas/stackoverflow-node-arguments
Cập nhật 24-07-2017
Thêm các biến trước khi bắt đầu các lệnh làm việc myvar="hello npm run scaffold
như trái ngược với npm run scaffold myvar="hello world"
Rất thú vị. Thêm biến vào đầu của lệnh hoạt động. Cuối cùng, nó không thành công. Cảm ơn câu trả lời của bạn – Simon
Rất vui vì bạn đã tìm ra câu trả lời. Chỉ cần đẩy một chi nhánh mới vào repo ví dụ của bạn với những thay đổi được bao gồm và github không hợp tác. – Chase