Webpack 网页包UglifyJsPlugin不';不能在OSX上工作,但可以在Windows上工作

Webpack 网页包UglifyJsPlugin不';不能在OSX上工作,但可以在Windows上工作,webpack,uglifyjs,Webpack,Uglifyjs,当我试图在OSX上编译我的网页包时,它给出了一个奇怪的错误,但在Windows上没有,也从来没有发生过 “{':/*harmony default export*/\uuuuu网页包\uuuuu exports.[“default”]=class”上出错{如果您使用的是Webpack2,很可能您依赖于某个模块,该模块具有jsnext:main配置选项,可以将其代码作为ES6模块提供。在这种情况下,Webpack2使用它们,这很好,直到您尝试使用Uglify,它无法处理ES6代码 您可能将节点_模

当我试图在OSX上编译我的网页包时,它给出了一个奇怪的错误,但在Windows上没有,也从来没有发生过


“{':
/*harmony default export*/\uuuuu网页包\uuuuu exports.[“default”]=class”上出错{

如果您使用的是Webpack2,很可能您依赖于某个模块,该模块具有jsnext:main配置选项,可以将其代码作为ES6模块提供。在这种情况下,Webpack2使用它们,这很好,直到您尝试使用Uglify,它无法处理ES6代码

您可能将节点_模块从Babel加载中排除,您也应该这样做,但为了使其正常工作,您需要明确地告诉webpack包含这个jsnext:main模块

我在preact compat上遇到了这个问题,并这样解决了它:

module: {
    rules: [
        {
            test: /\.js$/,
            loader: 'babel-loader',
            include: [
                path.resolve(__dirname, './src'),
                path.resolve(__dirname, './node_modules/preact-compat/src')
            ]
        }
    ]
}

您好,听起来不错。我自己做了一个,并且做了一个(笨拙的?)正则表达式,如:
exclude:/node\u modules\/(?!@company\/private module)/
是的,如果您像在我的代码示例中那样使用“include”,它将只使用srcPath中的代码(将其更改为源文件所在的位置),pus从需要“Babelize”的节点_模块到模块的路径