Lỗi: Không thể tìm thấy "es2015" đặt trước liên quan đến thư mục "/ Users / tên người dùng"


84

Tôi gặp lỗi sau khi cố gắng sử dụng gulp-babel:

Lỗi: Không thể tìm thấy giá trị đặt trước "es2015" liên quan đến thư mục "/ Users / tên người dùng"

Tôi đã cài đặt trước es2015 trên toàn cầu và cục bộ vì vậy không thể hiểu tại sao điều này lại là sự cố.

Dưới đây là thiết lập gulp của tôi và 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"
  }

Tôi đang sử dụng nút v5.1.0 và babel v6.4.0

Đây là thiết bị đầu cuối ouput

đầu ra thiết bị đầu cuối


Tôi nghĩ bạn cần phải chuyển một chuỗi trong presetsmảng, giống như ['es2015'], tôi không chắc lắm
thefourtheye

@thefourtheye Cảm ơn nhưng vấn đề giống như một chuỗi.
Brian Douglas

Bạn không cần nuốt. Có lẽ đó có thể là nguyên nhânvar gulp = require('gulp');
Andrei CACIO

@AndreiCacio Tôi đã đưa nó vào chỉ là không có trong đoạn mã. Tôi chỉ bao gồm mã liên quan đến trình biên dịch babel.
Brian Douglas

3
Bạn có tình cờ có một .babelrctập tin trong thư mục chính của mình không? Vì đó là nơi nó đang tìm kiếm giá trị đặt trước, có nghĩa là đó là nơi cấu hình đến từ.
loganfsmyth

Câu trả lời:


115

Bạn chỉ cần cài đặt babel-preset-es2015:

Ví dụ sử dụng CLI:

npm install babel-cli babel-preset-es2015

3
điều này đã giải quyết nó cho tôi ... WoW thật là một thông báo lỗi khủng khiếp: Lỗi: Không thể tìm thấy giá trị đặt trước "es2015" liên quan đến thư mục "/ path / to / node / package / trying / to / install" ... đặc biệt đau đớn khi cố gắng cài đặt một số gói NPM ngẫu nhiên trong đó sử dụng ngụm và babel
Scott Stensland

2
npm CẢNH BÁO babel-preset-es2015@6.24.1 không dùng nữa: 🙌 Cảm ơn bạn đã sử dụng Babel: chúng tôi khuyên bạn nên sử dụng babel-preset-env ngay bây giờ: vui lòng đọc babeljs.io/env để cập nhật!
Syed

Cảm ơn rất nhiều cho giải pháp tuyệt vời này.
Pawan

12

"es2015" trong:

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

thực sự là một đường dẫn - vì vậy nếu bạn không có giá trị đặt trước trong thư mục / Users / username / es2015, bạn phải trỏ chính xác đến nó, chẳng hạn như:

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

nó đã làm việc cho tôi


cũng làm việc cho tôi bằng cách sử dụng một đường dẫn tuyệt đối đến thư mục "babel-preset-es2015"
valkalon

Điều này có vẻ quá đơn giản, vì vậy tôi chỉ thêm nó dưới dạng nhận xét, nhưng hãy đảm bảo rằng bạn đánh vần đúng mọi thứ. Tôi đã có nhãn là 'es2105' với các chữ số được hoán vị và nó khiến tôi phải vò đầu bứt tai một lúc.
Robert Oschler

12

Để khắc phục sự cố này Bạn nên xóa tệp .babelrc (ẩn) khỏi thư mục "/ Users / tên người dùng".


Hoàn hảo. đây thực sự là một vấn đề rất ẩn. Đã giải quyết nó cho tôi
Amgad

8

Tôi vừa mới sử dụng gulpfile.js chính xác này

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'));
});

và nó đã làm việc cho tôi. Tôi chỉ cài đặt babel, babel-preset-es2015gulp-babel.


Bạn có thể cho tôi biết phiên bản babel và nút của bạn không. Tôi có thiết lập tương tự như bạn có thể thấy. nhưng vẫn có lỗi đó
Brian Douglas

Tôi đang sử dụng nút 4.0 và babel 6
Andrei CACIO

Cập nhật mô tả với đầu ra thiết bị đầu cuối
Brian Douglas

Nó có thể là một vấn đề liên quan đến cửa sổ hoặc sự cố như vậy. Tôi đã tìm thấy một chủ đề tương tự mà bạn có thể kiểm tra: github.com/laravel/elixir/issues/354 có thể nó sẽ làm sáng tỏ vấn đề.
Andrei CACIO

1
Tải babel-preset-es2015rõ ràng như được hiển thị ở đây đã giải quyết được vấn đề của tôi.
givemesnacks

7

Kiểm tra xem bạn có tệp .babelrc trong thư mục gốc của Dự án hay không. Nếu không, hãy tạo tệp .babelrc và thêm những thứ sau:

{
  "presets": ["es2015"]
}

Nó đã khắc phục sự cố.


Đã lưu ngày của tôi! Cảm ơn bạn
Mehrnoosh

5

Bạn có thể thử cài đặt es2015stage-2thông qua

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

4

Tôi gặp phải vấn đề tương tự và đó là do tôi có một .babelrctệp trong thư mục gốc của mình.

Để khắc phục điều này, hãy thêm babelrc: falsebên trong các tùy chọn 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 tôi đã tìm thấy một .babelrctệp trong thư mục gốc của mình và đây là sự cố. cấu hình babelrc: falsecó vẻ không hoạt động, nhưng khi tôi xóa mọi thứ hoạt động!
totalduka

3

Tôi đã gặp vấn đề tương tự và gợi ý thứ hai này đã giúp tôi nhận ra vấn đề của mình và có thể đó cũng là vấn đề của bạn.

npm install gulp-babel-es2015Sau đó tôi đã không đưa nó vào gulpfile.

Sau đó, babel({presets: ['es2015']})tùy chọn chỉ là một chuỗi như được hiển thị trong các ví dụ ở đây https://www.npmjs.com/package/gulp-babel .

Đây là gulpfile của tôi.

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']);

Ngoài ra, từ vấn đề này ở đây, https://github.com/laravel/elixir/issues/354

Đề xuất là bạn nên cập nhật nút lên phiên bản 5.xx và npm lên 3.xx


1

Tình huống mà tôi gặp phải sự cố này là tôi đã chuyển các tệp từ xxxsang xxx/server. Và sau đó xxx/servertôi sẽ thấy Error: Couldn't find preset "es2015" relative to directory "/Users/username/xxx"lỗi. Lý do thực sự là tôi đã quên di chuyển .babelrctệp đó bên dưới xxx. Và sau khi tôi chuyển nó .babelrcsang xxx/server, lỗi sẽ biến mất.


0

Tôi vừa có một điều thực sự kỳ lạ. Tôi đã cài đặt tất cả các công cụ babel bằng một npm installlệnh dài lớn và mọi thứ được cài đặt không có lỗi ... ngoại trừ nó đang ném lỗi được ghi lại trong luồng này, trong thời gian chạy.

Tôi nhận thấy phiên bản là 0.0.0 trong tệp package.json, vì vậy tôi đã chạy npm install --save-dev babel-preset-es2015lại và nó hoạt động và đặt khóa SECOND vào tệp package.json của tôi:

   "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"
   }

Tôi vừa xóa mục nhập bị relative to directorylỗi và nó đã xóa lỗi này .


0

Vấn đề của tôi là chương trình khác đang sử dụng một tệp liên quan đến quá trình biên dịch (có thể là .babelrc). Đóng một số ứng dụng đã giải quyết được vấn đề của tôi.

Đối với tôi là Dropbox hoặc thậm chí là Brackets Editor với phần mở rộng eqFTP.

Lời chào hỏi


0

Cập nhật Babel 7

Từ các tài liệu bây giờ bạn nên sử dụng @babel/preset-envthay vì bất kỳ presetđề cập nào khác

Cài đặt trước "env" đã ra mắt hơn một năm nay và thay thế hoàn toàn một số cài đặt trước mà chúng tôi đã có / đề xuất trước đó.

  • babel-preset-es2015
  • babel-preset-es2016
  • babel-preset-es2017
  • babel-đặt trước-mới nhất
  • Sự kết hợp của những điều trên ^
yarn add @babel/preset-env

hoặc là

npm install @babel/preset-env
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.