【问题标题】:How do I include 'fs' modules in Sapper?如何在 Sapper 中包含“fs”模块?
【发布时间】:2019-12-14 19:37:05
【问题描述】:

我正在从事一个 Sapper 项目,因为对于我想快速启动和运行的一个小项目来说,它看起来很不错。这并不容易,我现在无法从我的 Sapper 项目中运行包含内置“fs”模块的脚本。

我正在尝试构建一个字符生成器。我已经构建了一个可以执行此操作的脚本,但我希望能够将生成的字符保存为 JSON 文件,然后稍后再读取它们。阅读很容易,写作似乎没有在任何明显的地方列出。我所拥有的最好的方法是尝试让内置插件运行以允许我访问 fs 模块,但我对此的研究参差不齐且无济于事。尝试汇总以提供帮助似乎不起作用,我无法找到可接受的替代方案。

每当我运行该项目时,它只是说它无法解决它。

Could not load fs (imported by E:\Software Projects\Javascript\Io-Generator\src\routes\generator\generator.js): ENOENT: no such file or directory, open 'E:\Software Projects\Javascript\Io-Generator\fs'

我所做的似乎无济于事。请有人能解释一下我在这里缺少什么吗?我使用 Sapper 错了吗?我在这里的汇总中遗漏了什么吗?有没有我想念的替代方案?

如果有帮助,我的汇总配置:

    client: {
        input: config.client.input(),
        output: config.client.output(),
        plugins: [
            replace({
                'process.browser': true,
                'process.env.NODE_ENV': JSON.stringify(mode)
            }),
            svelte({
                dev,
                hydratable: true,
                emitCss: true
            }),
            resolve({
                browser: true,
                preferBuiltins: true,
                dedupe
            }),
            commonjs( {
                browser: true
            } ),

            globals(),

            builtins( {
                fs: true
            } ),

            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: [
            replace({
                'process.browser': false,
                'process.env.NODE_ENV': JSON.stringify(mode)
            }),
            svelte({
                generate: 'ssr',
                dev
            }),
            resolve({
                browser: false,
                preferBuiltins: true,
                dedupe
            }),
            commonjs(),
            builtins( {
                fs: true
            } ),
            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( {
                browser: false,
                preferBuiltins: true
            } ),
            replace({
                'process.browser': true,
                'process.env.NODE_ENV': JSON.stringify(mode)
            }),
            commonjs(),
            builtins( {
                fs: true
            } ),
            json(),
            !dev && terser()
        ],

        onwarn,
    }
};```

【问题讨论】:

  • 导入 fs 对我有效,并且设置了库存工兵,并且对 rollup.config.js 没有任何更改。
  • 很奇怪。稍后我会再试一次。
  • 我再次重建了一切。这似乎完全没问题。什么鬼?!
  • @joshnuss 你能告诉我你安装了什么以及你是如何导入它的吗?我认为它正在寻找模块,但它正在谈论现在缺少原型。
  • 我刚刚将import fs from 'fs' 添加到blog/index.json.js 并添加了对fs.readFileSync(...) 的调用并使用curl localhost:5000/blog/index.json 对其进行了测试,没有错误

标签: config fs rollup svelte sapper


【解决方案1】:

所以,我从一个新项目重新启动了我的项目。 Aaaa 很好。它工作正常。有可能我真的搞砸了我的项目,尝试了多种不同的东西来让它们工作,造成了一些严重的损害。以后我会更加小心的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-28
    • 2020-01-07
    • 1970-01-01
    • 2018-03-24
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多