Mar*_*tin 6 winston rollupjs sapper
我正在尝试让 Winston 日志库与我的 Sapper 应用程序一起使用。该 Sapper 应用程序使用 Rollup 作为模块捆绑器。为了实现我的应用程序,我基本上遵循了以下步骤:
\n\n启动使用 Rollup 的新 Sapper 项目:
\n\nnpx degit "sveltejs/sapper-template#rollup" my-app\nRun Code Online (Sandbox Code Playgroud)\n\n通过安装 Winstonnpm install winston并在文件中添加自定义记录器工厂src/_logging.js:
npx degit "sveltejs/sapper-template#rollup" my-app\nRun Code Online (Sandbox Code Playgroud)\n\n通过工厂获取记录器并在服务器路由中使用记录器src/routes/blog/_posts.js:
import { createLogger, transports, format } from \'winston\';\n\nexport function createLabeledLogger(label) {\n return createLogger({\n level: \'debug\',\n transports: [new transports.Console()],\n format: format.combine(\n format.label({ label: label, message: true }),\n format.splat(),\n format.padLevels(),\n format.simple(),\n )\n });\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这就像一个魅力:
\n\n\xe2\x9c\x94 service worker (16ms)\ndebug: [posts-server] Created 5 posts for client.\n> Listening on http://localhost:5001\nRun Code Online (Sandbox Code Playgroud)\n\n然而,我一直在努力让该记录器在浏览器中工作。
\n\n为此,我在客户端路由中引入了记录器src/routes/blog/index.svelte:
import { createLabeledLogger } from \'../../_logging\';\nconst logger = createLabeledLogger(\'posts-server\');\n\nconst posts = [\n// ...\n];\n\nposts.forEach(post => {\n// ...\n});\n\nlogger.debug(`Created ${posts.length} posts for client.`)\nRun Code Online (Sandbox Code Playgroud)\n\n这导致了以下错误:
\n\n\xe2\x9c\x97 client\nUnexpected token (Note that you need @rollup/plugin-json to import JSON files)\n1: {\n2: "_from": "winston",\n ^\n3: "_id": "winston@3.2.1",\n4: "_inBundle": false,\nRun Code Online (Sandbox Code Playgroud)\n\n所以,我通过安装了建议的插件
\n\nnpm install --save-dev @rollup/plugin-json\nRun Code Online (Sandbox Code Playgroud)\n\n并修改rollup.config.js为导入插件 ( import json from \'@rollup/plugin-json\';) 并在客户端捆绑包 ( ) 中使用它json()。
虽然这解决了上述“JSON”问题,但它会带来新的麻烦:
\n\n\'util\' is imported by node_modules/winston/dist/winston/common.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'os\' is imported by node_modules/winston/dist/winston/exception-handler.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'os\' is imported by node_modules/winston/dist/winston/rejection-handler.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'util\' is imported by util?commonjs-external, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'os\' is imported by os?commonjs-external, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'os\' is imported by node_modules/winston/dist/winston/transports/file.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'os\' is imported by node_modules/winston/dist/winston/transports/console.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'os\' is imported by node_modules/winston/dist/winston/transports/stream.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'util\' is imported by node_modules/winston-transport/dist/index.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'path\' is imported by node_modules/winston/dist/winston/transports/file.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'zlib\' is imported by node_modules/winston/dist/winston/transports/file.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'fs\' is imported by node_modules/winston/dist/winston/transports/file.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'https\' is imported by node_modules/winston/dist/winston/transports/http.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'http\' is imported by node_modules/winston/dist/winston/transports/http.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n[...]\nRun Code Online (Sandbox Code Playgroud)\n\n基于这个答案,我安装了它rollup-plugin-node-builtins,并将其添加到rollup.config.js类似于 JSON 插件(import builtins from \'rollup-plugin-node-builtins\';和builtins())。
这再次解决了上述“无法解决”的问题——并再次引起新的麻烦:
\n\npreferring built-in module \'string_decoder\' over local alternative at \'/private/tmp/mburger/my-app/node_modules/string_decoder/lib/string_decoder.js\', pass \'preferBuiltins: false\' to disable this behavior or \'preferBuiltins: true\' to disable this warning\npreferring built-in module \'string_decoder\' over local alternative at \'/private/tmp/mburger/my-app/node_modules/string_decoder/lib/string_decoder.js\', pass \'preferBuiltins: false\' to disable this behavior or \'preferBuiltins: true\' to disable this warning\npreferring built-in module \'string_decoder\' over local alternative at \'/private/tmp/mburger/my-app/node_modules/string_decoder/lib/string_decoder.js\', pass \'preferBuiltins: false\' to disable this behavior or \'preferBuiltins: true\' to disable this warning\npreferring built-in module \'string_decoder\' over local alternative at \'/private/tmp/mburger/my-app/node_modules/string_decoder/lib/string_decoder.js\', pass \'preferBuiltins: false\' to disable this behavior or \'preferBuiltins: true\' to disable this warning\npreferring built-in module \'string_decoder\' over local alternative at \'/private/tmp/mburger/my-app/node_modules/string_decoder/lib/string_decoder.js\', pass \'preferBuiltins: false\' to disable this behavior or \'preferBuiltins: true\' to disable this warning\nRun Code Online (Sandbox Code Playgroud)\n\n好的,所以我设置preferBuiltins为false. 新的麻烦又出现了:
Circular dependency: node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js -> node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js -> node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js\nCircular dependency: node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js -> node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js -> /private/tmp/mburger/my-app/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js?commonjs-proxy -> node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js\nCircular dependency: node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js -> node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js -> node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js\nCircular dependency: node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js -> node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js -> /private/tmp/mburger/my-app/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js?commonjs-proxy -> node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js\nCircular dependency: node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js -> node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/readable.js -> node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js\nCircular dependency: node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js -> node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/writable.js -> node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js\nCircular dependency: node_modules/readable-stream/lib/_stream_readable.js -> node_modules/readable-stream/lib/_stream_duplex.js -> node_modules/readable-stream/lib/_stream_readable.js\nCircular dependency: node_modules/readable-stream/lib/_stream_duplex.js -> node_modules/readable-stream/lib/_stream_writable.js -> node_modules/readable-stream/lib/_stream_duplex.js\nCircular dependency: node_modules/readable-stream/lib/_stream_duplex.js -> node_modules/readable-stream/lib/_stream_writable.js -> /private/tmp/mburger/my-app/node_modules/readable-stream/lib/_stream_duplex.js?commonjs-proxy -> node_modules/readable-stream/lib/_stream_duplex.js\nCircular dependency: node_modules/readable-stream/lib/_stream_readable.js -> node_modules/readable-stream/lib/_stream_duplex.js -> /private/tmp/mburger/my-app/node_modules/readable-stream/lib/_stream_readable.js?commonjs-proxy -> node_modules/readable-stream/lib/_stream_readable.js\nRun Code Online (Sandbox Code Playgroud)\n\n现在,我按照此评论中的说明进行操作,并rollup.config.js相应地调整了我的文件。
又出现了一个新问题:
\n\nCould not resolve \'./stream/duplex.js\' from node_modules/rollup-plugin-node-builtins/src/es6/stream.js\nRun Code Online (Sandbox Code Playgroud)\n\n好吧,按照本自述文件中的说明,我安装了rollup-plugin-node-globals它并将其添加到我的rollup.config.js文件中(import globals from \'rollup-plugin-node-globals\';,globals())。
这会导致类似的问题:
\n\nCould not resolve \'./stream/writable.js\' from node_modules/rollup-plugin-node-builtins/src/es6/stream.js\nRun Code Online (Sandbox Code Playgroud)\n\n我研究了各种 Stack Overflow 条目、GitHub 问题跟踪器和 Google。
\n\n是否可以在使用 Rollup 作为捆绑器的 Sapper 应用程序中使用 Winston?
\n\n顺便说一句,要成功地将 Winston 与 Sapper 应用程序的 webpack 版本一起使用,运行它所需的只是添加node: { fs: \'empty\' },-webpack.config.js正如 Web Developer 控制台中的输出所示:
debug: [posts-page] Obtained 5 posts from server.\nRun Code Online (Sandbox Code Playgroud)\n\n6月2日更新
\n\n您可以在 GitHub Gist 中找到完整的 rollup.config.js 文件。
\n\n请注意,它既不能与preferBuiltinsset to一起使用true,也不能与 set to 一起使用false。
6月3日更新
\n\n缓慢下降到(开发)地狱的内部圈子仍在继续:
\n\n根据 ThomasHennes 的建议,我添加了以下符号链接:
\n\n\xe2\x9d\xaf la node_modules/rollup-plugin-node-builtins/src/es6/stream\nlrwxr-xr-x 1 mburger wheel 15B Jun 3 12:45 node_modules/rollup-plugin-node-builtins/src/es6/stream -> readable-stream\nRun Code Online (Sandbox Code Playgroud)\n\n再次,一个不同的问题浮出水面:
\n\n\xe2\x80\xa2 client\n\'stream/writable\' is imported by stream/writable?commonjs-external, but could not be resolved \xe2\x80\x93 treating it as an external dependency\n\'stream/writable\' is imported by node_modules/winston-transport/dist/index.js, but could not be resolved \xe2\x80\x93 treating it as an external dependency\nCircular dependency: node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js -> node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/readable.js -> node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js\nCircular dependency: node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js -> node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/writable.js -> node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |