【问题标题】:use redux in chrome extensions在 chrome 扩展中使用 redux
【发布时间】:2018-04-15 03:43:29
【问题描述】:

我正在尝试使用 React 和 Redux 为 Google Chrome 开发一个扩展。 我的 background.js 如下:

import {wrapStore} from 'react-chrome-redux';
import store from './store';
import rootReducer from './reducers'

const store = createStore(rootReducer, {});

wrapStore(store, {
  portName: 'test'
})

我已经使用 npm 安装了所有必需的模块,但是当我在 Chrome 上上传扩展程序时出现此错误:

Uncaught SyntaxError: Unexpected token import

我已经在MDN上检查了import的兼容性,而且我的浏览器版本是62号,所以我认为我不需要使用Babel。

我的 manifest.json 文件如下:

{
  "manifest_version": 2,

  "name": "Demo React-Chrome extension",
  "description": "This extension shows how to run a React app in a Chrome extension",
  "version": "1.0",
  "background": {
    "scripts":["back.js"]
    },
  "browser_action": {
    "default_icon": "logo_small.png",
    "default_popup": "index.html"
  }
}

你们中有人知道这个问题吗?

【问题讨论】:

  • 我用 React 制作了几个小网站,还制作了一些 Chrome 扩展。我没有尝试将两者放在一起,但我会做的是 npm 构建 React 站点,确保构建文件包含 chrome 扩展的必要条件(清单、背景 js、图像文件夹等),复制构建文件/文件夹到您的扩展目录,然后像往常一样从该位置将解压缩的扩展加载到浏览器中。
  • 我之前尝试过使用 React + Chrome 扩展,并且没有任何问题(通过使用 npm run build)。这是我 fork github.com/pierroberto/react-chrome-extension 并用作指导的 repo。在我尝试在其上实现 Redux 之前它一直有效
  • 好的,Redux 帮不上忙,抱歉

标签: javascript reactjs google-chrome redux


【解决方案1】:

在使用 Chrome 扩展程序时,您似乎仍需要将 ES6 代码转换为 ES5: ES6 Modules In Google Chrome Extension Development (unexpected token)

我在使用 React 和 Redux 编写我的第一个 Chrome 扩展程序时发现的最佳资源是您获得 react-chrome-redux npm 包的地方: https://github.com/tshaddix/react-chrome-redux-examples

示例对于如何构建扩展程序和解压加载它们非常有指导意义。 gulpwebpack 在这些情况下用于构建最终将被加载的 ES5 代码。

希望这会有所帮助!

【讨论】:

猜你喜欢
  • 2016-10-12
  • 1970-01-01
  • 2018-12-02
  • 2014-08-05
  • 2018-09-11
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多