Свернуть не распознает требуется - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь использовать контентный API для этого блога, который я создаю с помощью sapper / svelte. Мне, очевидно, нужно использовать require для загрузки API-интерфейса contentfuls, но накопительный пакет выдает ошибку.

require is not defined

ReferenceError: require is not defined
    at http://localhost:3000/client/api.186b34eb.js:1:20

Я пытался установить приличное количество плагинов, чтобы решить эту проблему, но безрезультатно. Вот файл API.

const contentful = require('contentful');

const Client = contentful.createClient({
    space: "aagf7zedqso5",
    accessToken: "bafc9e682b9f9703341a15d4a66782fc4e99f3c901e6406238c5f17e5afe5363"
});

export const FetchEntries = contentType =>
    Client.getEntries({
      content_type: contentType,
      order: sys.createdAt
    })
    .then(response => {
        return response.items;
    })
    .catch(err => {
        return err
    });

export const fetchEntry = (contentType, slug) => 
    Client.getEntries({
        content_type: contentType,
        'fields.slug': slug
    })
    .then(response => {
        return response.items;
    })
    .catch(err => {
        return err
    });

, а вот мой файл конфигурации накопительного пакета

import resolve from '@rollup/plugin-node-resolve';
import replace from '@rollup/plugin-replace';
import commonjs from '@rollup/plugin-commonjs';
import svelte from 'rollup-plugin-svelte';
import babel from 'rollup-plugin-babel';
import { terser } from 'rollup-plugin-terser';
import config from 'sapper/config/rollup.js';
import pkg from './package.json';
import sveltePreprocess from 'svelte-preprocess';
import image from '@rollup/plugin-image';
import json from '@rollup/plugin-json';

const mode = process.env.NODE_ENV;
const dev = mode === 'development';
const legacy = !!process.env.SAPPER_LEGACY_BUILD;

const onwarn = (warning, onwarn) => (warning.code === 'CIRCULAR_DEPENDENCY' && /[/\\]@sapper[/\\]/.test(warning.message)) || onwarn(warning);
const dedupe = importee => importee === 'svelte' || importee.startsWith('svelte/');

const preprocess = sveltePreprocess({
    sass: true,
});

export default {
    client: {
        input: config.client.input(),
        output: config.client.output(),
        plugins: [
            commonjs({
                include: 'node_modules/**'
            }),
            replace({
                'process.browser': true,
                'process.env.NODE_ENV': JSON.stringify(mode)
            }),
            svelte({
                dev,
                hydratable: true,
                emitCss: true,
                preprocess
            }),
            resolve({
                browser: true,
                dedupe
            }),
            image(),
            json(),

            legacy && babel({
                extensions: ['.js', '.mjs', '.html', '.svelte'],
                runtimeHelpers: true,
                exclude: ['node_modules/@babel/**'],
                presets: [
                    ['@babel/preset-env', {
                        targets: '> 0.25%, not dead'
                    }]
                ],
                plugins: [
                    '@babel/plugin-syntax-dynamic-import',
                    ['@babel/plugin-transform-runtime', {
                        useESModules: true
                    }]
                ]
            }),

            !dev && terser({
                module: true
            })
        ],

        onwarn,
    },

    server: {
        input: config.server.input(),
        output: config.server.output(),
        plugins: [
            commonjs({
                include: 'node_modules/**'
            }),
            replace({
                'process.browser': false,
                'process.env.NODE_ENV': JSON.stringify(mode)
            }),
            svelte({
                generate: 'ssr',
                dev,
                preprocess
            }),
            resolve({
                dedupe
            }),
            image(),
            json()

        ],
        external: Object.keys(pkg.dependencies).concat(
            require('module').builtinModules || Object.keys(process.binding('natives'))
        ),

        onwarn,
    },

    serviceworker: {
        input: config.serviceworker.input(),
        output: config.serviceworker.output(),
        plugins: [
            resolve(),
            replace({
                'process.browser': true,
                'process.env.NODE_ENV': JSON.stringify(mode)
            }),
            commonjs(),
            !dev && terser()
        ],

        onwarn,
    }
};

1 Ответ

0 голосов
/ 24 января 2020

Попробуйте

const module = require('module')
external: Object.keys(pkg.dependencies).concat(
            module.builtinModules || Object.keys(process.binding('natives'))
        ), //etc...
...