我正在尝试将redux-persist添加到我的redux应用程序中。
我使用webpack对我的JavaScript进行打包,在开发过程中,redux-persist包按预期工作。我的开发配置(使用coffeescript编写)如下:
debug: true
devtool: "eval"
output:
path: path.resolve 'app/static/bundles/'
filename: '[name].js'
publicPath: "#{devServer}:#{port}/app/static/bundles/"
plugins: [
new webpack.NamedModulesPlugin
new webpack.HotModuleReplacementPlugin
new webpack.NoErrorsPlugin
new BundleTracker filename: './webpack/webpack-stats.json'
]
在部署生产前,我会构建一个“staging”捆绑包,它使用生产 NODE_ENV 但跳过 Uglify 插件步骤以节省时间,因为我通常在部署之前会多次重建此捆绑包。然而,如果我在源代码中的任何位置都要求
redux-persist
,则可以成功构建此捆绑包,但页面不会加载,我会收到错误Unexpected Token ~
,我已经追踪到 json-stringify-safe
是 redux-persist
的依赖项。 "staging" 配置如下: output:
path: path.resolve 'app/static/dist/'
filename: '[name].js'
sourceMapFilename: "[name].map.js"
debug: false
cache: false
devtool: "source-map"
plugins: [
new BundleTracker filename: './webpack/webpack-stats-staging.json'
new webpack.DefinePlugin
'process.env':
'NODE_ENV': JSON.stringify 'production'
new webpack.NamedModulesPlugin
new webpack.optimize.OccurenceOrderPlugin
new ExtractTextPlugin "[name].css"
]
这个配置和我的生产环境配置唯一的区别就是没有包含Uglify,但是当我使用这个配置时,一切都正常:
output:
path: path.resolve 'app/static/dist/'
filename: '[name].js'
sourceMapFilename: "[name].map.js",
devtool: "source-map"
debug: false
plugins: [
new BundleTracker filename: './webpack/webpack-stats-prod.json'
new webpack.DefinePlugin
'process.env':
'NODE_ENV': JSON.stringify 'production'
new webpack.optimize.OccurenceOrderPlugin
new ExtractTextPlugin "[name].css"
new webpack.optimize.UglifyJsPlugin
sourceMap: false
compressor:
warnings: false
]