gpt4 book ai didi

snowpack:项目文件夹之外的引用文件

转载 作者:行者123 更新时间:2023-12-03 16:58:23 25 4
gpt4 key购买 nike

我们的团队开发了一堆 JavaScript 浏览器应用程序。这些应用程序共享功能(核心)和 Web 组件(共享)。文件夹结构为:

/apps
/app-1
/app-2
...
/core
/shared
每个文件夹包含一个 src文件夹。
考虑在文件夹 app-1 中使用 snowpack我想引用 /core/src中的js文件或 /shared/src用于开发(使用 snowpack dev)和打包(使用 snowpack build)
  • 这可能吗?
  • 是否有最佳实践如何实现这一目标?
  • 是否有这种情况(或类似情况)的示例

  • 我尝试了什么:
    第一步:我使用了这样的路径: ../../core/src/router.js .这不起作用,可能是因为资源位于测试服务器的 webroot 之外( snowpack dev )。
    第二步:我创建了两个符号链接(symbolic link):
    apps/app-1/src/@core   -> ../../../core/src
    apps/app-1/src/@shared -> ../../../shared/src
    现在本地服务器找到了所有资源。然而,构建过程只找到那些文件,它们是 core/src 的直接子文件。或 shared/src ,但不是子文件夹中的任何文件,例如 shared/src/component/filter.js .
    有什么想法或想法吗?
    附录 snowpack.config.json应用程序 1:
    {
    "devOptions": {
    "port": 8082,
    "open": "none"
    },
    "mount": {
    "public": "/",
    "src": "/_dist_"
    },
    "plugins": [
    "@snowpack/plugin-babel",
    "@snowpack/plugin-dotenv",
    "@snowpack/plugin-sass"
    ]
    }
    app-1/src/handler 中的导入示例:
    import { loadRoute } from '../@core/router'    // works fine
    import '../@shared/component/filter' // does not work
    // or:
    import { loadRoute } from '../@core/router.js' // works fine, too
    import '../@shared/component/filter.js' // does not work neither

    最佳答案

    您只需添加以下内容即可解决您的问题:

      workspaceRoot: '..',
    给您的 snowpack.config.js文件。
    基本上,它告诉 snowpack 通过它的管道处理来自父文件夹 ( .. ) 的所有内容。它将获取依赖项并处理所有内容。
    在您的情况下,您可以从 shared 导入文件在 app-1通过使用相对路径,并且不创建任何符号链接(symbolic link):
    import something from '../shared/something';
    你可以找到更多关于 workspaceRoot位于 snowpack's documentation 的房产.

    关于snowpack:项目文件夹之外的引用文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65005200/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com