o2team / athena2

Build tool based on Webpack
MIT License
214 stars 38 forks source link

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

Closed woshixiaoqianbi closed 6 years ago

luckyadam commented 6 years ago

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 的配置

woshixiaoqianbi commented 6 years ago

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

luckyadam commented 6 years ago

@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'
      }
    }
  }
}
...
woshixiaoqianbi commented 6 years ago

@luckyadam 非常感谢

vincentmrlau commented 6 years ago

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