使用 Webpack 2 公开 Redux
Exposing Redux with Webpack 2
我正在将 Webpack 从版本 1 迁移到我正在处理的项目中的版本 2,我拥有的其中一个构建是针对依赖项文件的,其中我公开了对 Window
使用 webpack 的 expose-loader.
除了 Redux 没有暴露外,它工作正常。
这些是我配置的相关部分:
entry: {
dependencies: [
'react',
'react-dom',
'react-router',
'redux',
'react-redux',
'redux-thunk',
'es6-promise',
'isomorphic-fetch'
]
},
和:
module: {
rules: [
{
test: /\.js$/,
use: [
'babel-loader'
],
include: path.join(__dirname, 'src')
},
{
test: require.resolve('react'),
use: 'expose-loader?React'
},
{
test: require.resolve('react-dom'),
use: 'expose-loader?ReactDOM'
},
{
test: require.resolve('react-router'),
use: 'expose-loader?ReactRouter'
},
{
test: require.resolve('redux'),
use: 'expose-loader?Redux'
},
{
test: require.resolve('react-redux'),
use: 'expose-loader?ReactRedux'
},
{
test: require.resolve('redux-thunk'),
use: 'expose-loader?ReduxThunk'
},
{
test: require.resolve('isomorphic-fetch'),
use: 'expose-loader?fetch'
}
]
}
还有我的 babel 预设:
"presets": [
"react",
["es2015", { "modules": false }],
"stage-2"
],
当我 运行 构建时,我得到这个输出:
注意Redux是函数添加的
知道如何解决这个问题吗?
看起来 webpack 无法像在条目列表中那样使用简单的字符串引用自动解析 redux 和其他模块。
将 console.log
放入 expose-loader/index.js
导致此输出。这表明 Redux 和其他人甚至没有通过 expose loader。
将条目列表更改为此,应该可以解决问题。
entry: [
require.resolve('redux'),
require.resolve('react'),
require.resolve('react-dom'),
require.resolve('react-router'),
require.resolve('react-redux'),
require.resolve('redux-thunk'),
require.resolve('es6-promise'),
require.resolve('isomorphic-fetch')
],
我正在将 Webpack 从版本 1 迁移到我正在处理的项目中的版本 2,我拥有的其中一个构建是针对依赖项文件的,其中我公开了对 Window
使用 webpack 的 expose-loader.
除了 Redux 没有暴露外,它工作正常。
这些是我配置的相关部分:
entry: {
dependencies: [
'react',
'react-dom',
'react-router',
'redux',
'react-redux',
'redux-thunk',
'es6-promise',
'isomorphic-fetch'
]
},
和:
module: {
rules: [
{
test: /\.js$/,
use: [
'babel-loader'
],
include: path.join(__dirname, 'src')
},
{
test: require.resolve('react'),
use: 'expose-loader?React'
},
{
test: require.resolve('react-dom'),
use: 'expose-loader?ReactDOM'
},
{
test: require.resolve('react-router'),
use: 'expose-loader?ReactRouter'
},
{
test: require.resolve('redux'),
use: 'expose-loader?Redux'
},
{
test: require.resolve('react-redux'),
use: 'expose-loader?ReactRedux'
},
{
test: require.resolve('redux-thunk'),
use: 'expose-loader?ReduxThunk'
},
{
test: require.resolve('isomorphic-fetch'),
use: 'expose-loader?fetch'
}
]
}
还有我的 babel 预设:
"presets": [
"react",
["es2015", { "modules": false }],
"stage-2"
],
当我 运行 构建时,我得到这个输出:
注意Redux是函数添加的
知道如何解决这个问题吗?
看起来 webpack 无法像在条目列表中那样使用简单的字符串引用自动解析 redux 和其他模块。
将 console.log
放入 expose-loader/index.js
导致此输出。这表明 Redux 和其他人甚至没有通过 expose loader。
将条目列表更改为此,应该可以解决问题。
entry: [
require.resolve('redux'),
require.resolve('react'),
require.resolve('react-dom'),
require.resolve('react-router'),
require.resolve('react-redux'),
require.resolve('redux-thunk'),
require.resolve('es6-promise'),
require.resolve('isomorphic-fetch')
],