构建一个React模块:addComponentAsRefTo

时间:2016-06-16 17:20:59

标签: javascript reactjs module webpack react-dom

我正在尝试构建一个React模块,然后在我的主应用程序中使用它,但在使用它时我得到:

  

addComponentAsRefTo(...):只有ReactOwner可以有refs。你可能会   将ref添加到未在a中创建的组件   组件的渲染方法,或者你有多个React副本   加载。

以下是我的AwesomeModule

的网络包
const prodConfig = {
    entry: {
        'awesomeModule.js': './src/js/index.js'
    },
    output: {
        path: PATHS.distJs,
        filename: 'awesomeModule.js',
        libraryTarget: 'umd',
        library: 'AwesomeModule'
    },
    externals: {
        'react': 'React',
        'moment': 'moment',
        'lodash': 'lodash'
    },
    module: {
        loaders: [
            {
                test: /(\.jsx|\.js)$/,
                include: PATHS.src,
                loader: 'babel'
            },
            {
                test: /\.json$/,
                loader: 'json'
            },
            {
                test: /\.less$/,
                include: PATHS.src,
                loader: 'style-loader!css-loader!less-loader'
            }
        ]
    },
    resolve: {
        extensions: ['', '.js', '.jsx']
    },
    plugins: [
        new webpack.DefinePlugin({
            'process.env.NODE_ENV': '"production"'
        }),
        new AssetsPlugin({
            filename: 'assets.json',
            path: PATHS.distJs,
            fullPath: false,
            prettyPrint: true
        }),
        envParamsPlugin
    ]
};

在我的主应用中,我将其添加到dependencies中的package.json。这是我的App

的webpack配置
const prodConfig = {
    entry: {
        'app.js': "./src/index.jsx"
    },
    output: {
        path: PATHS.distJs,
        filename: "app-[hash].js"
    },
    module: {
        loaders: [
            {
                test: /(\.jsx|\.js)$/,
                include: PATHS.src,
                loader: "babel"
            },
            {
                test: /\.json$/,
                loader: 'json'
            },
            {
                test: /\.less$/,
                include: PATHS.src,
                loader: 'style-loader!css-loader!less-loader'
            }
        ]
    },
    resolve: {
        extensions: ['', '.js', '.jsx'],
    },
    plugins: [
        new webpack.DefinePlugin({
            'process.env.NODE_ENV': '"production"'
        }),
        new AssetsPlugin({
            filename: 'assets.json',
            path: PATHS.distJs,
            fullPath: false,
            prettyPrint: true
        }),
        envParamsPlugin
    ]
};

我的问题在哪里?

0 个答案:

没有答案