哪个 webpack devtool 适合 chrome 应用程序?

Posted

技术标签:

【中文标题】哪个 webpack devtool 适合 chrome 应用程序?【英文标题】:which webpack devtool is suitable for chrome apps? 【发布时间】:2016-08-04 22:31:38 【问题描述】:

我已将我的 chrome-app 构建过程从 grunt 迁移到 webpack。 起初我使用source-map 作为 webpack 开发工具。

一切似乎都按预期工作,但是当我压缩我的构建时,调试出现错误 - 无法检查变量,实际执行的代码与 chrome 突出显示的行不完全对齐...

所以我尝试了cheap-module-eval-source-map,它在网络浏览器(chrome)中完美工作,但在 chrome 应用程序中抛出错误Uncaught EvalError: Refused to evaluate a string as javascript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "default-src 'self' blob: filesystem: chrome-extension-resource:".

那么,在压缩我的构建并将其作为 chromeapp 运行时,我应该使用哪个开发工具?

我的 webpack 缩短配置:


  // also tried:
  // cheap-module-source-map - doesn't work at all
  // cheap-module-eval-source-map - throws an error on chrome-apps
  // source-map - buggy when using with uglify plugin
  // inline-source-map - same as source-map
  devtool: 'source-map',
  plugins: [
    new webpack.optimize.UglifyJsPlugin(
      compress: 
        warnings: false
      
    ),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.optimize.DedupePlugin()
  ]

非常感谢!

【问题讨论】:

【参考方案1】:

由于严格的Chrome apps "Content Security Policy",适当的webpack devtool可能是其中之一:

inline-cheap-source-map - 转换后的代码(仅行) inline-cheap-module-source-map - 原始来源(仅行) inline-source-map - 原始来源

原因是 chrome 应用不能:

从字符串评估js 将地图加载为单独的文件,因此您需要内联地图

【讨论】:

以上是关于哪个 webpack devtool 适合 chrome 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

[webpack] devtool里的7种SourceMap[转]

[转] Webpack的devtool和source maps

webpack配置文件中的devtool与其他插件(例如UglifyjsWebpackPlugin)源映射选项有什么区别?

[转] webpack3最新版本配置研究 devtool,webpack-dev-server,CommonsChunkPlugin

为啥在 Redux-DevTools 中使用 Webpack HMR 插件时 App 状态会重置?

最终的 webpack 包总是将函数包装在 eval 中,而不管 "devtool: 'inline-source-map'"