gulp 특정 질문은 아니지만 gulpfile.js 내의 package.json 파일에서 정보를 어떻게 얻을 수 있습니까? 예를 들어 홈페이지 나 이름을 가져 와서 작업에 사용하고 싶습니다.
답변
require('./package.json')
감시 프로세스에 사용하지 마십시오 . 를 사용 require
하면 첫 번째 요청의 결과로 모듈이 해결됩니다. 따라서 package.json을 편집하는 경우 해당 편집은 감시 프로세스를 중지하고 다시 시작하지 않는 한 작동하지 않습니다. gulp watch 프로세스의 경우 파일을 다시 읽고 작업이 실행될 때마다 파싱하므로 bitlinguist의 방법을 사용하는 것이 가장 좋습니다.
var fs = require('fs');
var json = JSON.parse(fs.readFileSync('./package.json'));
답변
이것은 꿀꺽 꿀꺽 거리는 소리가 아닙니다.
var p = require('./package.json')
p.homepage
최신 정보:
“require”는 읽기 결과를 캐시합니다. 즉, 요구할 수없고 파일에 쓴 다음 다시 요구하고 결과가 업데이트 될 것으로 기대할 수 없습니다.
답변
이것은 @Mangled Deutz의 좋은 솔루션입니다. 나 자신이 먼저 그것을했지만 작동하지 않았습니다 (곧 다시), 다음 해결책을 시도했습니다.
# Gulpfile.coffee
requireJSON = (file) ->
fs = require "fs"
JSON.parse fs.readFileSync file
이제 이것이 작동했지만 약간 장황하다는 것을 알 수 있습니다. require('./package.json')
최상의 솔루션입니다.
팁
-파일 이름 앞에 ‘./’를 추가하는 것을 잊지 마십시오. 나는 그것이 간단하다는 것을 알고 있지만, 작동하는 것과 작동하지 않는 것의 차이점입니다.
답변
” npm run build “등을 사용하는 것과 같이 NPM에서 꿀꺽 꿀꺽 마시기를 트리거하는 경우
(이것은 NPM에 의한 gulp 실행 트리거에서만 작동합니다)
process.env.npm_package_ 객체
더 깊은 개체의 경우 밑줄로 구분해야합니다.
package.json에서 만든 구성 객체를 읽고 싶은 것처럼 package.json에서 특정 구성을 읽고 싶다면
scripts : {
build: gulp
},
config : {
isClient: false.
}
그런 다음 사용할 수 있습니다
process.env.npm_package_**config_isClient**