вау, это название длинное, и я даже не уверен, что оно точное. Я прочитал много слов, и некоторые из них я знаю, надеюсь, я знаю те, которые использовал в названии.

в любом случае, двигаясь дальше, как я исследовал в предыдущем посте, мы можем использовать babel как нечто большее, чем просто esnext = ›espresent? компилятор. здесь мы рассмотрим, как мы можем использовать babel, чтобы принимать за нас определенные решения во время сборки, которые обычно откладываются на время выполнения, чтобы, надеюсь, ускорить наши приложения.

представьте (или, по крайней мере, попробуйте очень сильно), что у вас есть какая-то система разрешений пользователей в вашем приложении, которая ограничивает доступ к некоторым частям вашего пользовательского интерфейса на основе разрешений, вы можете обернуть этот пользовательский интерфейс в такой компонент, как этот, который ограничивает доступ только тем, кто может редактировать и показывает какой-то другой компонент, или ничего тем, кто не может.

<RequiredPermissions
  required={[“can_edit”]}
  permissions={this.props.permissions}
  notAllowedElement={<Error />}
>
  <textarea onChange={() => {}}>
    {this.props.content}
  </textarea>
</RequiredPermissions>

у многих приложений будет относительно немного вариантов этих наборов разрешений, например, у вас могут быть администраторы, редакторы и читатели. в подобных случаях мы можем просто создать три отдельных пакета во время сборки, которые переместили бы эти решения времени выполнения в решения времени построения путем внедрения определенных наборов разрешений и использования babel для замены компонента RequiredPermissions на в этом случае , либо children, либо notAllowedElement, выполнив что-то вроде этого:

Затем в нашем .babelrc

это позволит нам установить разрешения для определенных разрешений, установленных в process.env.PERMISSIONS, а не просто выбрать ветку и поместить ее непосредственно в окончательный скомпилированный файл вместо компонента RequiredPermissions, который потребуется принять решение о том, может ли пользователь что-то видеть каждый раз во время выполнения.

это заставляет нас использовать некоторые инструменты для нашей системы сборки, и я пока не придумал для этого отличной идеи, но что-то вроде этого должно работать:

следующим шагом в процессе будет удаление импорта везде, где мы действительно могли предварительно выбрать ветку, но я еще не совсем дошел до этого момента. дайте мне знать, если у вас есть какие-либо идеи или другие отзывы, спасибо за чтение, и я надеюсь, что это было наименее интересным или информативным.