gpt4 book ai didi

javascript - 如何使用 Meteor 通过动态路径导入

转载 作者:行者123 更新时间:2023-11-29 16:06:22 25 4
gpt4 key购买 nike

这就是我现在导入所有带有方法、固定装置和发布的集合声明的方式:

import './news/collection.js';
import './news/methods.js';

if (Meteor.isServer) {
import './news/server/fixtures.js';
import './news/server/publications.js';
}

如果你添加一些新的集合,你必须重新编写:

import './comments/collection.js';
import './comments/methods.js';

if (Meteor.isServer) {
import './comments/server/fixtures.js';
import './comments/server/publications.js';
}

当你有大量的收藏时,你必须一遍又一遍地写。最终为了 DRY 你想写这样的东西:

let collections = ['news', 'comments', ... 'everything'];

for (let collection of collections) {
import `./${collection}/collection.js`;
import `./${collection}/methods.js`;
if (Meteor.isServer) {
import `./${collection}/server/fixtures.js`;
import `./${collection}/server/publications.js`;
}
}

现在 Unexpected token, expected { 错误抛出。

我搜索了 Meteor 文档,不敢相信:真的没有办法用 Meteor 通过动态路径导入东西吗?

最佳答案

在昨天发布的 meteor 1.5 之后,现在支持动态导入

我刚刚写了一篇关于如何执行此操作的文章,更重要的是,何时以及为何执行此操作。

https://code.zeroasterisk.com/2017/05/meteor-1-5-bundle-optimization/

TL;DR:import('./my_component') 返回一个 promise,它在客户端拥有时解析。

之前:客户端包的正常导入部分

import PickDates from './PickDates';

之后:动态导入不再是客户端包的一部分

import Loader from 'react-loader';

// generic loading component to show while transfering section of code
const LoadingComponent = () => <span className="text-muted"><i className="fa fa-refresh" /></span>;
// new version of the component, now: loading --> rendered
const PickDates = Loader({
// this does the dynamic import, and returns a promise
loader: () => import('./PickDates'),
// this is our generic loading display (optional)
LoadingComponent,
// this is a delay before we decide to show our LoadingComponent (optional)
delay: 200,
});

关于javascript - 如何使用 Meteor 通过动态路径导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40844484/

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