如何通过ES6导入包含Foundation 6 JS文件?

时间:2016-03-06 17:44:31

标签: javascript gulp browserify babeljs

我正在使用浏览器+ babelify来编译我的JS。

我的任务看起来像这样:

import config from '../config.json';

import gulp from 'gulp';
import browserify from 'browserify';
import babelify from 'babelify'
import browserSync from 'browser-sync';
import babel from 'gulp-babel';
import source from 'vinyl-source-stream';


function onError(error) {
    console.log(error.toString());
    this.emit('end');
}

export function dev() {
    return browserify({
        entries: 'src/js/main.js',
        debug: true,
        extensions: ['.js', '.json', '.es6']
    })
        .transform(babelify)
        .bundle()
        .on('error', onError)
        .pipe(source('main.js'))
        .pipe(gulp.dest('public/js'))
        .pipe(browserSync.stream());
}


gulp.task('js:dev', dev);

src/js/main.js我正在尝试导入Foundation JS模块。该文件只包含一行:

import 'foundation-sites/js/foundation.util.motion';

编译后,我得到一些非编译的基础模块,其中包含一些browserify和babelify代码:

enter image description here

但是!我尝试将文件从node_modules复制到src文件夹并导入它:

import './inc/app';

在这种情况下,al工作正常:

enter image description here

为什么呢?有什么神奇之处?什么是正确的方式?

1 个答案:

答案 0 :(得分:3)

问题是您正在尝试导入foundation-sites包的源文件。您必须使用已node-modules/foundation-sites/dist/plugins/foundation.util.motion上已编译的捆绑版本或单个源文件。

然后用这个替换你的导入它将起作用:

import 'foundation-sites/dist/plugins/foundation.util.motion';