o2team/athena2

你好,之前我写的vue和ng2,刚接触nerv,想问一下我用了athena2初始化项目,然后我想引入antd,但是会抱react和react-dom的错,请问这里nerv怎么处理

woshixiaoqianbi opened this issue · 5 comments

你好,之前我写的vue和ng2,刚接触nerv,想问一下我用了athena2初始化项目,然后我想引入antd,但是会抱react和react-dom的错,请问这里nerv怎么处理

Hello,在项目的根目录下 configindex.js 配置里可以加入webpack的配置,将reactreact-dom alias 成 nerv

// config/index.js
const config = {
  ...
  webpack: {
    resolve: {
      alias: {
        react: 'nervjs',
        'react-dom': 'nervjs'
      }
    }
  }
}
...

可以参考一下项目 https://github.com/NervJS/nerv-website 的配置

@luckyadam ok,多谢,麻烦再问一下,antd默认的css样式没有加载进来,athena2需要怎么配置

@woshixiaoqianbi 看了一下antd的文档,样式是需要自己引入的,可以在页面的js里引入

import 'antd/dist/antd.css'

另外,antd的依赖的很多组件使用了 create-react-class 来创建组件,Nerv提供了 nerv-create-class 来达到同样目的,你需要安装 nerv-create-class 包,并且在 config/index.js 中增加一条webpack的alias配置

// config/index.js
const config = {
  ...
  webpack: {
    resolve: {
      alias: {
        react: 'nervjs',
        'react-dom': 'nervjs',
        'create-react-class': 'nerv-create-class'
      }
    }
  }
}
...

@luckyadam 非常感谢

偶然逛到这个issue,@luckyadam 应该使用babel-plugin-import这个插件动态引入