답변:
같은 오류가 발생했습니다. 노드 12와 꿀꺽 꿀꺽 3을 사용하고 있다고 생각합니다. https://github.com/gulpjs/gulp/issues/2324
Jan의 이전 해결 방법은 다음 중 하나도 작동하지 않습니다. https://github.com/gulpjs/gulp/issues/2246
솔루션 : gulp 4로 업그레이드하거나 이전 노드로 다운 그레이드하십시오.
webshot
노드 패키지를 사용하는 비슷한 문제가 있습니다 . Node v12로 진행하기 전에 끝 부분에서 무언가를 업데이트해야한다고 생각합니다.
v12.1.0
와 gulp를 사용 하고 gulp@4.0.2
있지만 작동하지 않습니다
v10.x
와 v3.x
gulp로 시험해 보니 마술이 일어났다
gulp@3.9.1
Node.js 12 에 따라 레거시 프로젝트를 업데이트 할 때도 같은 문제가 발생했습니다 .
이 수정 사항을 사용하면 버전 gulp@3.9.1
을 재정 의하여 Node.js 12를 사용할 수 있습니다 .graceful-fs
4.2.3
이것을 포함 하는 npm-shrinkwrap.json
파일 을 작성하십시오 .
{
"dependencies": {
"graceful-fs": {
"version": "4.2.3"
}
}
}
이 npm-shrinkwrap.json
파일을 커밋 하십시오. 그런 다음 파일 npm install
을 업데이트 할 실행 npm-shrinkwrap.json
하십시오.
불행히도이 솔루션은 npm install
다시는 더 이상 작동하지 않습니다 . 아래의 다른 솔루션을 참조하십시오.
Yarn v1 은 패키지를 정의 된 버전으로 해석하는 것을 지원합니다 . 에 resolutions
섹션 을 추가해야 합니다 package.json
.
{
// Your current package.json contents
"resolutions": {
"graceful-fs": "4.2.3"
}
}
감사합니다 @jazd이 문제를 해결하기 위해 에게 .
npm-force-resolutions
사전 설치 스크립트로 사용하면 yarn v1과 유사한 결과를 얻을 수 있습니다. 다음과 같이 package.json을 수정해야합니다.
{
// Your current package.json
"scripts": {
// Your current package.json scripts
"preinstall": "npx npm-force-resolutions"
},
"resolutions": {
"graceful-fs": "4.2.3"
}
}
npm-force-resolutions
완료 되기 전에 원하는 버전 package-lock.json
으로 설정 graceful-fs
하도록 파일을 변경합니다 install
.
.npmrc
프로젝트에서 사용자 정의 파일을 사용하고 있고 프록시 또는 사용자 정의 레지스트리가 포함되어있는 경우 현재로 변경 npx npm-force-resolutions
하여 기본적으로 현재 폴더 파일을 사용하지 npx --userconfig .npmrc npm-force-resolutions
않기 때문에로 변경해야합니다 .npx
.npmrc
이 문제 는 어떤 monkeypatches Node.js 모듈 에 gulp@3.9.1
따라 달라집니다 .graceful-fs@^3.0.0
fs
이것은 11.15 버전 ( 개발 브랜치 의 버전 이므로 프로덕션에서는 사용해서는 안 됨) 까지 Node.js와 함께 작동했습니다 .
graceful-fs@^4.0.0
Node.js fs
모듈을 더 이상 monkeypatch하지 않으므로 Node.js> 11.15와 호환됩니다.
이 솔루션은 다년생 솔루션이 아니지만로 업데이트 할 시간이 없을 때 도움이됩니다 gulp@^4.0.0
.
npm install
다시 생성 package-lock.json
하거나 npm-shrinkwrap.json
,이 종속성을 고정하는 데 실패 보였다. 다시 실행 한 후에도 npm install --no-save
생성 된 package-lock.json
npm은 누락 된 종속성을 설치하라는 메시지를 나타냅니다.
다음 명령을 사용하고 노드 v11.15.0을 설치 하십시오 .
npm install -g n
sudo n 11.15.0
해결할 것이다
ReferenceError : 원시가 노드에 정의되어 있지 않습니다
@Terje Norderhaug @Tom Corelis의 답변에서 참조하십시오.
다음 단계를 따르십시오 . 나는 Windows 10을 사용하고 있으며 완벽하게 작동했습니다!
package.json
으로 npm-shrinkwrap.json
파일을 작성한 동일한 디렉토리에서 : {
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
실행 npm install
하고 걱정하지 마십시오 npm-shrinkwrap.json
. 많은 콘텐츠로 업데이트 됩니다.
gulp
프로젝트를 시작하려면 실행하십시오 .
설치 명령에 따라 사용 node v11.15.0
및 gulp v3.9.1
:
npm install -g n
sudo n 11.15.0
npm install gulp@^3.9.1
npm install
npm rebuild node-sass
이 문제를 해결할 것입니다 :
ReferenceError: primordials is not defined in node
NVM 을 사용하여 사용 중인 노드 버전을 관리하고 다음 명령을 실행하면 나에게 도움이되었습니다.
$ cd /to/your/project/
$ nvm install lts/dubnium
$ nvm use lts/dubnium
$ yarn upgrade # or `npm install`
10
코드 이름 대신 사용 하십시오.
Gulp 3.9.1은 Node v12.xx에서 작동하지 않으며 Gulp 4.0.2로 업그레이드하는 경우 새로운 구문 (Series & Parallels)으로 gulpfile.js를 완전히 변경해야합니다. 따라서 가장 좋은 방법은 Node V 11.xx로 다운 그레이드하는 것입니다 .11.15.0은 저에게 효과적이었습니다. 터미널에서 다음 코드를 사용하면됩니다.
nvm install 11.15.0
nvm use 11.15.0 #just in case it didn't automatically select the 11.15.0 as the main node.
nvm uninstall 13.1.0
npm rebuild node-sass
건배!
노드 안정으로 다운 그레이드하면 노드 12로 업그레이드 한 후이 문제가 해결되었습니다.
sudo n 10.16.0
n
먼저 '-g N 설치 NPM'
Gulp 3.*
는 Node 12.*
이상에서 작동하지 않습니다 . Node를 다운 그레이드하거나 Gulp를 업그레이드해야합니다.
시간이 부족하면 Node를 v11. * 이하로 다운 그레이드하십시오. 최신 기능이 필요하고 깨진 종속성을 수정할 수있는 시간이 있다면 Gulp를 4. * 이상으로 업그레이드하십시오!
다른 사람들이 이미 언급했듯이 Gulp 3.*
는 노드 12
이상에서 지원되지 않으므로 노드 버전을 11.*
이하 로 다운 그레이드 하거나 Gulp를로 업그레이드해야합니다 4.0
.
가장 좋은 옵션은 Gulp를 업그레이드하면 깔끔한 gulpfile의 이점과 작업을 직렬 또는 병렬로 실행하는 데 대한 내장 제어 기능을 제공 하지만 gulpfile을 새로운 구문으로 다시 작성 하는 데 의존하기 때문에 궁극적으로 얼마나 많은 시간이 있는지에 달려 있습니다. 힘 (읽기 : 아마 것 -이 댓글의 끝을 참조) 일부 종속성이 충돌 원인.
가장 쉽고 빠른 옵션입니다. 특히 n 또는 nvm 을 사용하는 경우 노드 버전을 매우 빠르게 설치하고 전환 할 수 있습니다.
n 10.16.0
nvm install 10.16.0
이 작업을 수행 한 한, 당신은 할 수 귀하의 재 구축 할 필요가 NPM 의존성 또는 대안 당신의 모두 제거 node_modules
폴더와 package-lock.json
파일과 종속성을 다시 설치합니다. 기존 노드 버전으로 되돌릴 경우에는 문제가 없을 것입니다.
위에서 언급했듯이 이것은 시간이 많이 걸리는 작업이지만 장기적으로 이점을 가져올 수 있습니다. 예를 들어, Node 12
는 이제 ES 모듈 (실험 플래그 뒤에)에 대한 기본 지원과 Node에 대한 완전한 지원을 도입했습니다 13
.
이를 사용하기 위해 노드를 업그레이드해야 할 수도 있습니다. 또는 쓰기 작업을보다 효율적이고 효율적으로 제어 할 수 있으므로 Gulp 4를 사용하는 이점을 원할 수도 있습니다.
이것에 대해서는 이미 많은 기사가 있으므로 자세한 내용은 자세히 설명하지 않지만 반복 하는 것은 빠른 일이 아닙니다 . 프로젝트의 크기에 따라 몇 가지 눈에 띄는 재 작성이 필요할 수 있으며, 중단되는 종속성이있을 수 있습니다. 시간이 부족한 경우 최소한 일시적으로 노드를 다운 그레이드하도록 선택해야합니다.
나와 같이 이미 Gulp 4+를 사용하고 4.0.2
있고 (원래 노드 10에서 Gulp를 사용하고 있었으며 ) 최근에 업그레이드 한 경우 (Node 13.8.0
) 여전히 문제가 발생하는 경우 종속성이 구 버전의 Gulp를 사용하면 파이프 라인에 갇히게됩니다.
내 경우에는 gulp-combine-mq
Gulp를 사용하는 종속성이었습니다.3.9.*
. 내 gulpfile에서이 작업을 비활성화하면 Gulp를 다시 실행할 수있었습니다.
이 경우 몇 가지 옵션이 있습니다.
말할 필요도없이, 구 버전의 Gulp에 의존하는 여러 플러그인이있는 경우, 특히 플러그인이 응용 프로그램에 필수적인 경우-이것은 Gulp를 업그레이드하는 데 많은 시간이 걸릴 수 있습니다 (따라서 위의 경고).
이 경우 패치를 발행 할 수있을 때까지 노드를 다운 그레이드하는 것이 가장 좋습니다.
이 오류는 새로운 버전의 Node (12)와 구 버전의 gulp (4 미만) 때문에 발생합니다.
노드 및 기타 종속성을 다운 그레이드하지 않는 것이 좋습니다. package.json
모든 종속성의 최신 버전을 가져 오는 파일 을 업데이트 하여이 문제를 해결했습니다 . 이를 위해을 사용 npm-check-updates
합니다. package.json
모든 종속성의 최신 버전으로 업데이트하는 모듈입니다 .
참조 : https://www.npmjs.com/package/npm-check-updates
npm i -g npm-check-updates
ncu -u
npm install
대부분의 경우 gulpfile.js
다음과 같이 업데이트해야합니다 .
참조 : https://fettblog.eu/gulp-4-parallel-and-series/#migration
전에:
gulp.task(
'sass', function () {
return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])
....
}
);
Other config...
gulp.task(
'watch', function () {
gulp.watch(sourcePath + '/sass/**/*.scss', ['sass']);
}
);
후:
gulp.task('sass', gulp.series(function(done) {
return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])
...
done();
}));
Other config...
gulp.task(
'watch', function () {
gulp.watch(sourcePath + '/sass/**/*.scss', gulp.series('sass'));
}
);
Windows 10에서이 오류가 발생했습니다. 손상된 로밍 프로필로 밝혀졌습니다.
npm ERR! node v12.4.0
npm ERR! npm v3.3.12
npm ERR! primordials is not defined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
C:\Users\{user}\AppData\Roaming\npm
폴더를 삭제하면 문제가 해결되었습니다.
다음 단계를 따르십시오. npm install을 여러 번 실행하거나 다른 모듈을 설치하거나 프로젝트를 인공물로 게시하는 것과 완벽하게 작동했습니다.
package.json이있는 동일한 디렉토리에서 다음 컨텐츠 로 npm-shrinkwrap.json 파일을 작성하십시오.
{
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
npm install을 실행하면 걱정할 필요가 없습니다. npm-shrinkwrap.json은 많은 콘텐츠로 업데이트됩니다. package.json 스크립트 옵션 을 업데이트하여이 업데이트를 제거합시다 .
"scripts": {
"preshrinkwrap": "git checkout -- npm-shrinkwrap.json",
"postshrinkwrap": "git checkout -- npm-shrinkwrap.json"
}
이제 npm install을 실행하면 npm-shrinkwrap.json이 손상되지 않고 영원히 작동합니다.
이것은 늦었을 수도 있지만 최신 gulp ^ 4.0을 사용하는 동안 Node v12를 유지하는 데 관심이있는 사람은 다음 단계를 수행하십시오.
다음을 사용하여 명령 줄 인터페이스를 업데이트하십시오 (예방을 위해).
npm i gulp-cli -g
gulp
패키지 의 under dependencies 섹션을 추가 / 업데이트하십시오.
"dependencies": {
"gulp": "^4.0.0"
}
package-lock.json
파일 삭제
node_modules
폴더 삭제
마지막으로 실행 npm i
하여 Gulp ^ 4.0에 대한 올바른 매개 변수를 사용하여 새 node_modules 폴더 및 package-lock.json 파일을 업그레이드하고 다시 작성하십시오.
npm i
참고 Gulp.js 4.0에는 Gulp 3에 사용 된 배열 메소드 대신 작업을 결합 하는 series()
및 parallel()
메소드가 도입되어 이전 gulpfile.js
스크립트 에서 오류가 발생하거나 발생하지 않을 수 있습니다 .
이 새로운 기능을 적용하는 방법에 대한 자세한 내용을 보려면이 사이트에서 실제로 정의를 수행하십시오. https://www.sitepoint.com/how-to-migrate-to-gulp-4/
( 도움이된다면, 쿵쿵 소리를 내십시오 )
gulp-cli
? 나는 당신의 발자취를 따르고 처음에는 모든 것이 작동하도록했습니다. 그러나 나는 gulp-cli
그것이 어디에 사용되는지 알지 못했기 때문에 제거 하고 모든 것이 여전히 작동했습니다. 그러나 node v12.9.1
와 Gulp로 다시 시작하고 있기 때문에 대답에 감사드립니다 4.0.2
!
프로그램 추가 또는 제거-> Node.js에서 노드를 제거하여 Windows 10 에서이 문제를 해결했습니다.
그런 다음 11.15.0 버전을 설치했습니다. https://nodejs.org/download/release/v11.15.0/
Windows 64 비트를 실행중인 경우 node-v11.15.0-x64.msi를 선택하십시오.
Gulp는 Nodejs 버전 11 이상에서 문제를 일으키고 있습니다. 현재 노드 버전을 제거하고 여기에 v10.15.1을 다시 설치하십시오. 해당 버전에 대한 링크가 있습니다. 이것은 나에게 도움이되며 문제도 해결할 것입니다.
4.0.1로 업그레이드하고 https://fettblog.eu/gulp-4-parallel-and-series/#migration 을 마이그레이션 하십시오.
를 사용하는 사람들을 위해 yarn
.
yarn global add n
n 11.15.0
yarn install # have to install again
ADOS CI 빌드에서 같은 이유로 같은 오류가있는 사람 :
이 질문은 도움을 찾을 때 처음 발견 한 것입니다. 첫 번째 Node.js 도구 설치 관리자 작업을 사용하여 노드를 설치하는 ADOS CI 빌드 파이프 라인이 있습니다. 그런 다음 npm 태스크를 사용하여 gulp를 설치합니다 (npm install -g gulp). 그런 다음 다음 Gulp 작업은 gulpfile.js에서 기본 작업을 실행합니다. 그 안에 꿀꺽 꿀꺽 먹은 물건이 있습니다.
Node.js 도구를 변경하여 이전 노드 대신 12.x 최신 노드를 설치하고 최신 gulp 버전은 4.0.2였습니다. 결과는 질문에서 설명한 것과 같은 오류였습니다.
이 경우 나를 위해 일한 것은 Alphonse R. Dsouza와 Aymen Yaseen이 이미 제안한 것처럼 node.js를 최신 11.x 버전으로 다운 그레이드했습니다. 이 경우 제안한 명령을 사용할 필요는 없지만 Node.js 도구 설치 프로그램 버전 사양을 11.x의 최신 노드 버전으로 설정하십시오.
설치되어 작동중인 Node.js의 정확한 버전은 11.15.0입니다. Gulp를 다운 그레이드 할 필요가 없었습니다.
두 가지 옵션이 있습니다
s3 NPM 패키지를 사용할 때도이 오류가 발생합니다. 따라서 문제는 graceful-fs 패키지에 있습니다. 업데이트해야합니다. 4.2.3에서 제대로 작동합니다.
따라서 로그 추적에 표시되는 NPM 패키지를 확인하고 graceful-fs를 4.2.3에 따라 업데이트하십시오.
Gulp 3을 사용하여 노드 12/13에서 오류가 발생하여 노드 11로 이동했습니다.
Node.js 버전을에서 12.14.0
로 다운 그레이드 한 10.18.0
후 다시 설치 하면 해결됩니다 node_modules
.
문제를 해결하는 단계 :-
다음 단계로 문제를 해결했습니다.
이제 배포 할 수 있습니다