汇总:(define | require | module)未定义

时间:2017-10-05 20:57:21

标签: javascript gulp rollupjs

我尝试将RollupGulp

一起使用

以下是我的Gulpfile:

const gulp = require("gulp");
const rollup = require("rollup-stream");
const vue = require("rollup-plugin-vue");
const resolve = require("rollup-plugin-node-resolve");
const commonjs = require("rollup-plugin-commonjs");
const json = require("rollup-plugin-json");
const babel = require("rollup-plugin-babel");
const globals = require("rollup-plugin-node-globals");
const source = require("vinyl-source-stream");
const buffer = require("vinyl-buffer");
const uglify = require("gulp-uglify");

// ... CSS tasks and the like

gulp.task("js", function scriptTask()
{
    rollup({
        input: "js/app.js",
        plugins: [
            vue(),
            resolve({
                jsnext: true,
                browser: true
            }),
            json(),
            commonjs(),
            babel({
                exclude: ["node_modules/**"],
                presets: [["env", {modules: false}]],
                plugins: ["external-helpers"]
            }),
            globals()
        ],
        format: "iife",
    })
        .pipe(source("bundle.js"))
        .pipe(buffer())
        .pipe(uglify())
        .pipe(gulp.dest("../dist"));
});

// ... default tasks and the like

这似乎成功地拉出所有依赖项并执行树抖动,但输出文件不会运行。取决于"格式的价值"传递给Rollup的选项,我在尝试时遇到以下错误之一:

Uncaught ReferenceError: require is not defined
    at bundle.js:1
    at bundle.js:1
    at bundle.js:1

Uncaught ReferenceError: define is not defined
    at bundle.js:1
    at bundle.js:1
    at bundle.js:1

Uncaught ReferenceError: module is not defined
    at bundle.js:1
    at bundle.js:1
    at bundle.js:1

没有任何作用!

1 个答案:

答案 0 :(得分:-1)

您应将此附加到脚本的末尾。

gulp.task('default', ['js']);
gulp.task('build', ['js']);