2017-02-05 15 views
0

Я использую глотку + browserify скомпилировать ES6 в ES5, а затем пытаюсь require, что в другом модуле (ни одна из этих работ):Не удается загрузить модуль ES6 с требует

Main = require('mylibrary/dist/main').Main 
Main2 = require('mylibrary/dist/main') 

Также пытался до export default class Main и попробовал class Main затем export default new Main

Я уверен, что это что-то простое, что мне не хватает? класс

ES6:

export class Main { 
    constructor(){ 
    console.log('Main!'); 
    } 

    test(){ 
    console.log('test'); 
    } 
} 

выход (сокращенно):

var Main = exports.Main = function() { 
    function Main() { 
    _classCallCheck(this, Main); 

    console.log('Main!'); 
    } 

    _createClass(Main, [{ 
    key: 'test', 
    value: function test() { 
     console.log('test'); 
    } 
    }]); 

    return Main; 
}(); 

gulpfile.js

var gulp = require('gulp'); 
var browserify = require('browserify'); 
var source = require("vinyl-source-stream"); 
var babelify = require("babelify"); 

gulp.task('browserify', function() { 
    return browserify({ 
     entries: ['src/main.js'], 
     debug: true 
    }) 
    .transform(babelify, {presets: ["es2015", "react"]}) 
    .bundle() 
    .on("error", function (err) { console.log("Error : " + err.message); }) 
    .pipe(source('main.js')) 
    .pipe(gulp.dest('./dist')); 
}); 

gulp.task('watch', function() { 
    gulp.watch('src/*.js', ['browserify']); 
    gulp.watch('src/*.jsx', ['browserify']); 
}); 

gulp.task('default', ['watch','browserify']); 

ответ

1

По умолчанию Browserify строит файл предназначен для выполнения в браузере, не тот, который предназначен для работы с require. Вы хотите использовать опцию Browserify standalone через

return browserify({ 
    entries: ['src/main.js'], 
    debug: true, 
    standalone: 'someName', 
}) 
+0

Спасибо. Мне нужно будет узнать больше об этом. Поэтому после добавления автономного: true, я получил следующую ошибку: «node_modules/browserify/node_modules/browser-pack/node_modules/umd/index.js: 55 var names = name.split ('.') ^ Тип: name.split не является функцией' – sanjosep43

+0

Извините, я думаю, что я ошибался, это не 'истина', это должна быть строка. – loganfsmyth

 Смежные вопросы

  • Нет связанных вопросов^_^