플랫폼에서 개발할 때 사용할 몇 가지 노드 셸 스크립트를 작성 중입니다. 우리는 Mac과 Windows 개발자가 있습니다. 한 인스턴스에서 .sh 파일을 실행하고 다른 인스턴스에서 .bat를 실행하기 위해 Node에서 확인할 수있는 변수가 있습니까?
답변
사용할 변수는 process.platform
Mac에서는 변수가를 반환합니다 darwin
. Windows에서는 win32
64 비트에서도 반환 됩니다.
현재 가능한 값 은 다음과 같습니다.
aix
darwin
freebsd
linux
openbsd
sunos
win32
방금 jakeFile 상단에 이것을 설정했습니다.
var isWin = process.platform === "win32";
답변
Node.js v6 이상에는 os
다양한 운영 체제 관련 유틸리티 방법을 제공하는 전용 모듈이 있습니다.
내 Windows 10 컴퓨터에서 다음을보고합니다.
var os = require('os');
console.log(os.type()); // "Windows_NT"
console.log(os.release()); // "10.0.14393"
console.log(os.platform()); // "win32"
https://nodejs.org/api/os.html#os_os_type 에서 전체 문서를 읽을 수 있습니다.
답변
Node.js의 OS 기본 모듈을 찾고 있습니다.
v4 : https://nodejs.org/dist/latest-v4.x/docs/api/os.html#os_os_platform
또는 v5 : https://nodejs.org/dist/latest-v5.x/docs/api/os.html#os_os_platform
os.platform ()
운영 체제 플랫폼을 반환합니다. 가능한 값은 ‘darwin’, ‘freebsd’, ‘linux’, ‘sunos’또는 ‘win32’입니다. process.platform의 값을 리턴합니다.
답변
방법
var opsys = process.platform;
if (opsys == "darwin") {
opsys = "MacOS";
} else if (opsys == "win32" || opsys == "win64") {
opsys = "Windows";
} else if (opsys == "linux") {
opsys = "Linux";
}
console.log(opsys) // I don't know what linux is.
OS
const os = require("os"); // Comes with node.js
console.log(os.type());
답변
이것은 나를 위해 잘 작동
var osvar = process.platform;
if (osvar == 'darwin') {
console.log("you are on a mac os");
}else if(osvar == 'win32'){
console.log("you are on a windows os")
}else{
console.log("unknown os")
}
답변
64 비트 창에서 32 비트 노드를 사용하는 경우 (예 : node-webkit 또는 atom-shell 개발자) process.platform이 win32를 에코합니다
사용하다
function isOSWin64() {
return process.arch === 'x64' || process.env.hasOwnProperty('PROCESSOR_ARCHITEW6432');
}
답변
나를 위해 잘 작동
if (/^win/i.test(process.platform)) {
// TODO: Windows
} else {
// TODO: Linux, Mac or something else
}
i 수정자는 대소 문자를 구분하지 않는 일치를 수행하는 데 사용됩니다.