相关疑难解决方法(0)

Javascript 6to5(现为Babel)导出模块用法

我还是初学者,我尝试将一个类导出并导入到主文件中,另一个类导入其他类文件并使用它们.

然后用6to5(现在的Babel)吞下ES5代码.

// file a.js
import B from 'b.js';

class A {
  constructor() {
    B.methodB();
  }
}

export default A;

// file b.js
class B {
  methodB() {
    console.log('hi from b');
  }
}

export default B;

// file main.js
import A from 'a.js';
new A();
Run Code Online (Sandbox Code Playgroud)

我的gulpfile:

var gulp = require('gulp');
var to5 = require('gulp-6to5');

gulp.task('default', function () {
  return gulp.src('main.js')
    .pipe(to5())
    .pipe(gulp.dest('dist'));
 });
Run Code Online (Sandbox Code Playgroud)

这是我的dist/main.js档案:

"use strict";

var _interopRequire = function (obj) {
  return obj && (obj["default"] || obj); …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 babeljs

13
推荐指数
1
解决办法
9053
查看次数

将Babel与单个输出文件和ES6模块一起使用

这是将我的ES6代码编译成单个ES5文件的gulp任务.我在ES6中使用类和模块(import,export).

  gulp.src(paths.scripts)
        .pipe(sourcemaps.init())
        .pipe(babel({
          presets: ['es2015']
         }))
        .pipe(concat('all.js'))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('./www/js'));
Run Code Online (Sandbox Code Playgroud)

但是,因为Babel将ES6 import指令编译成require命令,并且require将尝试请求文件,所以请求文件失败,因为所有ES5代码都被连接到一个文件all.js.

结果是一堆"错误:无法找到模块"错误.如何编译在单个文件中保存的模块?

javascript ecmascript-5 ecmascript-6 babeljs

7
推荐指数
1
解决办法
5677
查看次数

Babel 未按预期工作,错误:Uncaught ReferenceError:未定义 require

我正在尝试转译这个简单的代码以便在浏览器中使用,但它不起作用并且无法正常Uncaught ReferenceError: require is not defined工作require('uniq')(array);

我知道浏览器(在我的例子中是 chrome )不支持 require,但我认为这就是 babel 应该做的。

我可以使用 webpack 或 browserify,但这次我尝试使用 Babel 并遇到了这个问题。

包.json

"devDependencies": {
    "@babel/cli": "^7.11.5",
    "@babel/core": "^7.11.5",
    "@babel/preset-env": "^7.11.5"
  },
  "dependencies": {
    "@babel/polyfill": "^7.11.5",
    "uniq": "^1.0.1"
  }
Run Code Online (Sandbox Code Playgroud)

索引.js

const array = [1,1,2,2,3,5]  
require('uniq')(array)   
document.querySelector('p').innerText = array
Run Code Online (Sandbox Code Playgroud)

使用 babel 进行转译
npx babel index.js --out-file index2.js

index2.js(由babel生成)

"use strict";  
const array = [1, 1, 2, 2, 3, 5];  
require('uniq')(array);  
document.querySelector('p').innerText = array;  
Run Code Online (Sandbox Code Playgroud)

babel.config.json

{
  "presets": [
    [
      "@babel/env",
      {
        "targets": …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 babeljs

6
推荐指数
1
解决办法
2万
查看次数

使用babel转换为es3(符合safari)

我是巴贝尔新手.

我这样设置:

.babelrc:

{
    "presets": ["es2015", "es2017"]
}
Run Code Online (Sandbox Code Playgroud)

gulpfile:

gulp.task('default', function() {
    return gulp.src(['src/**/*.js', '!src/**/3rd/*'])
        .pipe(babel())
        .pipe(gulp.dest('dist'));
});
Run Code Online (Sandbox Code Playgroud)

然而,这似乎是编译为es5,这在Safari中并不完全支持.

有没有办法设定目标?那么它可以编译成ES3吗?

babel gulp

4
推荐指数
1
解决办法
4056
查看次数

标签 统计

babeljs ×3

ecmascript-6 ×3

javascript ×3

babel ×1

ecmascript-5 ×1

gulp ×1