【问题标题】:How to use ts-nameof with create-react-app or craco?如何将 ts-nameof 与 create-react-app 或 craco 一起使用?
【发布时间】:2021-08-05 06:12:59
【问题描述】:

我想在使用 create-react-app 创建的 React 应用程序中使用 ts-nameof。我怎么能做到这一点而不弹出? 提示:我也使用craco,因此涉及 craco 的解决方案也适合我。

谢谢!

【问题讨论】:

    标签: reactjs typescript create-react-app craco ts-nameof


    【解决方案1】:

    使用babel-macro 调用ts-nameof.macro 可以在不弹出的情况下实现。

    我已经对使用以下代码生成的新应用程序进行了测试:

    npx create-react-app temp --template typescript
    
    # install macro dependecies
    yarn add -D ts-nameof.macro
    # or
    # npm i --save-dev ts-nameof.macro
    

    注意:如果您的 react-scripts 版本低于 2.0,您还需要安装 babel-plugin-macros 作为开发依赖项。

    更新App.tsx

    import React from 'react';
    import nameof from "ts-nameof.macro"; // import nameof
    import logo from './logo.svg';
    
    import './App.css';
    
    function App() {
      console.log(nameof(window.alert)) // "alert"
      return (
        <div className="App">
          <header className="App-header">
            <img src={logo} className="App-logo" alt="logo" />
            <p>
              Edit <code>src/App.tsx</code> and save to reload.
            </p>
            <a
              className="App-link"
              href="https://reactjs.org"
              target="_blank"
              rel="noopener noreferrer"
            >
              Learn React
            </a>
          </header>
        </div>
      );
    }
    
    export default App;
    

    【讨论】:

    • 感谢您的精彩回复,已获得赏金!顺便说一句,链接的 babel-macro 文档声明 create-react-app 已经附带 babel-macro,只能确认 - 我不必安装它:-)
    • 我已添加它来回答,因为不确定您的 react-scripts 版本。是的,如果您的版本高于 2.0,则不需要。
    • 用注释更新了答案。谢谢?
    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 2019-05-31
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 2020-05-14
    • 2020-04-06
    • 2017-10-26
    相关资源
    最近更新 更多