Gulp rollup babel 错误 - 无法读取属性“preserveSynlinks”/“rollupVersion of undefined”

问题描述

我正在尝试创建一个 gulp 任务,该任务将使用 Rollup 使用环境变量为现代和旧版编译 JavaScript 文件。我已经为旧版引入了 plugin-node-resolveplugin-commonjs,但是每当我为旧版运行脚本时,我都会收到以下错误:

Message:\
    Cannot read property 'preserveSymlinks' of undefined\
Details:\
    code: PLUGIN_ERROR\
    hook: buildStart\
    domainEmitter: [object Object]\
    domainThrown: false

注意:我知道 rollup-plugin-babelrollup-plugin-commonjsrollup-plugin-node-resolve 的版本已被弃用。我已经尝试使用 @rollup/ 变体,但是当我使用这些变体时,出现以下错误,因此无论如何我都必须遗漏某些内容:

Message:
    Cannot read property 'rollupVersion' of undefined
Details:
    domainEmitter: [object Object]
    domainThrown: false

这是我的文件:

吞咽任务

const babel = require('rollup-plugin-babel');
const commonjs = require('rollup-plugin-commonjs');
const concat = require( 'gulp-concat');
const gulp = require('gulp');
const resolve = require('rollup-plugin-node-resolve');
const rollup = require( 'gulp-rollup');

const library = require('./library');


module.exports = () => {
    
    process.env.NODE_ENV = process.env.BROWSER;

        const rollupConfig = {
        allowRealFiles: true,input: library.getInputPath('scripts'),output: {'format': 'iife'},plugins: [
            babel()
        ],onwarn(warning,warn) {
            if (warning.code === 'THIS_IS_UNDEFINED') return;
            warn(warning);
        }
    };

    if (process.env.BROWSER === 'legacy') {
        rollupConfig.plugins = [
            ...rollupConfig.plugins,resolve({
                jsnext: true,main: true,browser: true
            }),commonjs(),];
    }

    gulp.task('build:scripts',gulp.series('lint:scripts',() => {   
        const inputPath = library.getInputPath('scripts');
        const outputPath = library.getOutputPath('scripts');
        const outputFile = library.getFileName('scripts');

        return gulp.src(inputPath)
            .pipe(rollup(rollupConfig))
            .pipe(concat(outputFile))
            .pipe(gulp.dest(outputPath));
    }));
}

.babelrc:

{
    "exclude": "node_modules/**","env": {
        "modern": {
            "plugins": [
                "@babel/plugin-proposal-class-properties"
            ]
        },"legacy": {
            "presets": [
                "@babel/preset-env"
            ],"plugins": [
                "@babel/plugin-proposal-class-properties"
            ]
        }
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)