没有使用Uglify的Webpack在使用redux-persist时出现“Unexpected Token ~”错误

3

我正在尝试将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-saferedux-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


    ]
1个回答

0
问题出在暂存包中的 devtool:"source-map",将其更改为 "eval" 后一切正常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接