ข้อผิดพลาด: ไม่พบ“ es2015” ที่ตั้งไว้ล่วงหน้าซึ่งสัมพันธ์กับไดเรกทอรี“ / Users / ชื่อผู้ใช้”


84

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามใช้ gulp-babel:

ข้อผิดพลาด: ไม่พบ "es2015" ที่ตั้งไว้ล่วงหน้าที่สัมพันธ์กับไดเร็กทอรี "/ Users / username"

ฉันมีการตั้งค่าล่วงหน้า es2015 ไว้ทั่วโลกและในเครื่องดังนั้นจึงไม่เห็นว่าทำไมถึงเป็นปัญหา

ด้านล่างนี้คือการตั้งค่าอึกของฉันและ package.json

var babel = require('gulp-babel');
var es2015 = require('babel-preset-es2015');

gulp.task('babel', function() {
    return gulp.src('./app/main.js')
    .pipe(babel({
        presets: [es2015]
    }))
    .pipe(gulp.dest('dist'));
});

Package.json

  "devDependencies": {
    "babel-preset-es2015": "^6.3.13",
    "babel-preset-es2015-node5": "^1.1.1",
    "browser-sync": "^2.11.0",
    "gulp": "^3.9.0",
    "gulp-babel": "^6.1.1",
    "gulp-stylus": "^2.2.0"
  }

ฉันใช้โหนด v5.1.0 และ babel v6.4.0

นี่คือการส่งออกของเทอร์มินัล

เอาท์พุทขั้ว


ฉันคิดว่าคุณต้องส่งสตริงในpresetsอาร์เรย์เช่น['es2015']ฉันไม่แน่ใจมากนัก
thefourtheye

@thefourtheye ขอบคุณ แต่ปัญหาเดียวกันกับสตริง
Brian Douglas

คุณไม่ต้องการอึก บางทีนั่นอาจเป็นสาเหตุvar gulp = require('gulp');
Andrei CACIO

@AndreiCacio ฉันได้รวมอึกมันไม่ได้อยู่ในข้อมูลโค้ด ฉันได้ใส่รหัสที่เกี่ยวข้องกับคอมไพเลอร์ babel เท่านั้น
Brian Douglas

3
คุณมี.babelrcไฟล์ในโฮมไดเร็กทอรีของคุณหรือไม่? เนื่องจากนั่นคือจุดที่มองหาค่าที่ตั้งไว้ล่วงหน้านั่นจึงหมายถึงที่มาของการกำหนดค่า
loganfsmyth

คำตอบ:


115

คุณต้องติดตั้งเท่านั้นbabel-preset-es2015:

ตัวอย่างการใช้งาน CLI:

npm install babel-cli babel-preset-es2015

3
สิ่งนี้แก้ไขให้ฉัน ... ว้าวข้อความแสดงข้อผิดพลาดที่แย่มาก: ข้อผิดพลาด: ไม่พบ "es2015" ที่ตั้งไว้ล่วงหน้าที่สัมพันธ์กับไดเร็กทอรี "/ path / to / node / package / attemping / to / install" ... เจ็บปวดเป็นพิเศษเมื่อ พยายามติดตั้งแพ็คเกจ npm แบบสุ่มซึ่งใช้อึกและบาเบล
Scott Stensland

2
npm WARN เลิกใช้ babel-preset-es2015@6.24.1: 🙌ขอบคุณที่ใช้ Babel: เราขอแนะนำให้ใช้ babel-preset-env ทันที: โปรดอ่าน babeljs.io/env เพื่ออัปเดต!
ไซ

ขอบคุณมากสำหรับโซลูชันที่น่าทึ่งนี้
Pawan

12

"es2015" ใน:

    .pipe(babel({
        presets: ['es2015']
    }))

เป็นเส้นทาง - ดังนั้นหากคุณไม่มีค่าที่ตั้งไว้ล่วงหน้าในไดเร็กทอรี / Users / username / es2015 คุณต้องชี้ไปที่มันเช่น:

.pipe(babel({
    presets: ['../../gulp/node_modules/babel-preset-es2015']
}))

มันได้ผลสำหรับฉัน


ยังทำงานให้ฉันโดยใช้เส้นทางที่แน่นอนไปยังโฟลเดอร์ "babel-preset-es2015"
valkalon

สิ่งนี้อาจดูง่ายเกินไปดังนั้นฉันจึงเพิ่มเป็นความคิดเห็นเท่านั้น แต่ต้องแน่ใจว่าคุณสะกดทุกอย่างถูกต้อง ฉันมีป้ายกำกับว่า 'es2105' โดยมีการย้ายตัวเลขและทำให้ฉันเกาหัวอยู่พักหนึ่ง
Robert Oschler

12

ในการแก้ไขปัญหานี้คุณควรลบไฟล์. babelrc (ซ่อน) ออกจากไดเร็กทอรี "/ Users / username"


สมบูรณ์แบบ. นี่เป็นปัญหาที่ซ่อนเร้นอยู่มาก แก้ไขให้ฉัน
Amgad

8

ฉันเพิ่งใช้ gulpfile.js ที่แน่นอนนี้

var babel = require('gulp-babel');
var es2015 = require('babel-preset-es2015');
var gulp = require('gulp');

gulp.task('babel', function() {
    return gulp.src('./app/main.js')
    .pipe(babel({
        presets: [es2015]
    }))
    .pipe(gulp.dest('dist'));
});

และมันได้ผลสำหรับฉัน ฉันเพียงติดตั้งbabel, และbabel-preset-es2015gulp-babel


คุณช่วยบอกเวอร์ชันของ babel และ node ให้ฉันทราบได้ไหม ฉันมีชุดเดียวกันกับที่คุณเห็น แต่ก็ยังมีข้อผิดพลาดเดียวกัน
Brian Douglas

ฉันใช้โหนด 4.0 และ babel 6
Andrei CACIO

อัปเดตคำอธิบายพร้อมเอาต์พุตเทอร์มินัล
Brian Douglas

อาจเป็นปัญหาที่เกี่ยวข้องกับ windows หรือ smth เช่นนั้น ฉันพบชุดข้อความที่คล้ายกันซึ่งคุณสามารถตรวจสอบได้: github.com/laravel/elixir/issues/354บางทีมันอาจจะส่องแสงให้กับปัญหา
Andrei CACIO

1
การโหลดbabel-preset-es2015อย่างชัดเจนดังที่แสดงไว้ที่นี่ช่วยแก้ปัญหาของฉันได้
givemesnacks

7

ตรวจสอบว่าคุณมีไฟล์. babelrc ในโฟลเดอร์รากของโครงการของคุณหรือไม่ หากไม่สร้างไฟล์. babelrc และเพิ่มสิ่งต่อไปนี้:

{
  "presets": ["es2015"]
}

แก้ไขปัญหาได้แล้ว


บันทึกวันของฉัน! ขอบคุณ
Mehrnoosh

6

คุณสามารถลองติดตั้งes2015และstage-2ผ่านไฟล์

npm i babel-preset-es2015 --save
npm i babel-preset-stage-2 --save

4

ฉันพบปัญหาเดียวกันและเป็นเพราะฉันมี.babelrcไฟล์ในรูทของไดเรกทอรีของฉัน

ในการแก้ไขส่วนเพิ่มนี้babelrc: falseภายในตัวเลือก babel:

var babel = require('gulp-babel');

gulp.task('babel', function() {
    return gulp.src('./app/main.js')
    .pipe(babel({
        babelrc: false,
        presets: ['babel-preset-es2015']
    }))
    .pipe(gulp.dest('dist'));
});

+1 ฉันพบ.babelrcไฟล์ในรูทของฉันและนี่คือปัญหา babelrc: falseดูเหมือนว่าconfig จะไม่ทำงาน แต่เมื่อฉันลบทุกอย่างก็ใช้ได้!
Overallduka

3

ฉันมีปัญหาเดียวกันและคำแนะนำที่สองนี้ช่วยให้ฉันสังเกตเห็นปัญหาของฉันและอาจเป็นของคุณด้วย

npm install gulp-babel-es2015จากนั้นฉันไม่ได้รวมไว้ใน gulpfile เลย

จากนั้นbabel({presets: ['es2015']})ตัวเลือกที่เป็นเพียงสตริงดังแสดงในตัวอย่างที่นี่https://www.npmjs.com/package/gulp-babel

นี่คือ gulpfile ของฉัน

var gulp = require('gulp'),
    babel = require('gulp-babel');

gulp.task('babelify', () => {
    gulp.src('js/*.js')
        .pipe(babel({
            presets: ['es2015']
        }))
    .pipe(gulp.dest('alljs'));
});

gulp.task('default', ['babelify']);

นอกจากนี้จากปัญหานี้ที่นี่https://github.com/laravel/elixir/issues/354

คำแนะนำคือคุณควรอัปเดต node เป็นเวอร์ชัน 5.xx และ npm เป็น 3.xx


1

สถานการณ์ที่ผมพบปัญหานี้ก็คือว่าผมได้ย้ายไฟล์จากไปxxx xxx/serverจากนั้นภายใต้xxx/serverฉันจะเห็นError: Couldn't find preset "es2015" relative to directory "/Users/username/xxx"ข้อผิดพลาด สาเหตุที่แท้จริงคือฉันลืมย้าย.babelrcไฟล์xxxนั้นไปข้างใต้ และหลังจากฉันย้าย.babelrcไปxxx/serverที่ข้อผิดพลาดจะหายไป


0

ฉันมีตัวประหลาดจริงๆ ฉันติดตั้งเครื่องมือ Babel ทั้งหมดที่มีความยาวขนาดใหญ่npm installคำสั่งคำสั่งเดียวและทุกอย่างติดตั้งโดยไม่มีข้อผิดพลาด ... ยกเว้นว่ามีการทิ้งข้อผิดพลาดที่บันทึกไว้ในเธรดนี้ขณะรันไทม์

ฉันสังเกตเห็นเวอร์ชัน 0.0.0 ในไฟล์ package.json ดังนั้นฉันจึงรันnpm install --save-dev babel-preset-es2015อีกครั้งและใช้งานได้และวางคีย์ SECOND ลงในไฟล์ package.json ของฉัน:

   "devDependencies": {
     "babel-cli": "^6.24.1",
     "babel-core": "^6.24.1",
     "babel-polyfill": "^6.23.0",
     "babel-preset-es2015": "^6.24.1",
     "babel-preset-es2015": "0.0.0",
     "babel-preset-stage-2": "^6.24.1",
     "eslint": "^3.19.0"
   }

ฉันเพิ่งลบรายการที่ไม่เรียบร้อยและมันได้ล้างrelative to directoryข้อผิดพลาดนี้


0

ปัญหาของฉันคือโปรแกรมอื่นกำลังใช้ไฟล์ที่เกี่ยวข้องกับกระบวนการคอมไพล์ (อาจเป็น. babelrc) การปิดแอพหลายตัวช่วยแก้ปัญหาของฉันได้

สำหรับฉันคือ Dropbox หรือแม้แต่ Brackets Editor ที่มีส่วนขยาย eqFTP

ทักทาย


0

อัปเดต Babel 7

จากเอกสารตอนนี้คุณควรใช้@babel/preset-envแทนการpresetกล่าวถึงอื่น ๆ

ค่าที่ตั้งไว้ล่วงหน้า "env" ออกมานานกว่าหนึ่งปีแล้วและแทนที่ค่าที่ตั้งไว้ล่วงหน้าบางส่วนที่เรามี / แนะนำก่อนหน้านี้โดยสิ้นเชิง

  • babel- ที่ตั้งไว้ล่วงหน้า-es2015
  • babel ที่ตั้งไว้ล่วงหน้า es2016
  • babel-preset-es2017
  • babel-preset ล่าสุด
  • การรวมกันของข้างต้น ^
yarn add @babel/preset-env

หรือ

npm install @babel/preset-env
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.