如何在Sapper应用程序中为每个人提供全局的“断言”?

问题描述 投票:0回答:2

我想为我正在创建的Sapper应用程序中的所有代码提供运行时assert

编辑:

assert模块适用于assert构建,但不适用于server构建,在浏览器中显示这500条错误消息之一:

  • client

    import { strict as sa } from 'assert';

    因此,客户端版本显示警告:Module specifier does not start with ...

  • 'assert' is imported by src/assert.js, but could not be resolved – treating it as an external dependency

    const sa = require("assert").strict;

    这样,客户端构建就可以通过了。 :/

我的Can't find variable: requirerollup.config.js

免责声明:我是Svelte和Sapper的新手,不知道应该怎么做,在这里。我的目标不仅是使它正常工作,而且要弄清楚出了什么问题(例如,了解Sapper / Svelte打包机制)。


原始说明:

这应该很简单。定义全局高点(应用程序可以将rollup.config.js设为package.jsonpackage.json并将其置于可用状态)。实际上,我还是很困惑。

我曾考虑过直接设置import(有点苛刻?),然后将值作为参数传递给实际需要它的那些组件(但参数传递看起来很困难)。

这是一种依赖项注入的情况,我希望有一个require,而较低的代码不在乎,这很有趣。

注意:assert不会执行,因为它仅打印出消息。 Chrome浏览器提供了使其崩溃的选项。我可能会考虑。

svelte rollupjs sapper
2个回答
1
投票

服务器端

window.assert模块内置在assert中。例如,如果您将其导入console.assert并调用assert,则效果很好。

客户端

由于没有node模块的浏览器版本,您需要将npm软件包src/server.js安装为assert(false, "whoops"),然后将其包含在捆绑包中。

这是通过将其导入assert

assert

现在您也可以将其导入devDependency文件中:

src/client.js

0
投票

我从Sapper转到// src/client.js import assert from 'assert' .... ,问题消失了。🙂以下是详细信息(如果适用于您,请发表评论。)>

.svelte<!-- Example.svelte --> <script> import assert from assert assert(false, "dang it") </script> 文件中:

svelte-filerouter

.svelte中:

.js

我基于import { assert } from 'assert'; rollup.config.js构图了此。


我不知道为什么我在Sapper中得到的500消失了。如果以Sapper为基础而不是Svelte,则有很多不同。

© www.soinside.com 2019 - 2024. All rights reserved.