【问题标题】:Using webpack and jspm and external dependencies使用 webpack 和 jspm 以及外部依赖
【发布时间】:2016-05-09 09:09:00
【问题描述】:

在我网站的每个页面上,我都想包含来自 cdnjs.com 的 React、React DOM 和 React Bootstrap。我已经 npm 安装了 react-tinymce。我要做的是编写一个组件,使用 react-tinymce 来显示一个 tinymce 编辑器;当它通过 gulp 捆绑时,我只想将 react-tinymce 和我的组件捆绑在我的 dist.js 中;我不希望 React、React DOM 和 React Bootstrap 捆绑在 dist.js 中。

所以我尝试了外部 (Webpack and external libraries) 并且我也尝试了 browserify-shim,但它就是不想工作;它只是一直说没有定义反应。仅当我将 React、React DOM 和 React Bootstrap 与 react-tinymce 和我的组件捆绑在一起时,该捆绑包才有效。

当我试图摆脱 browserify 时,有人可以为 webpack 和 jspm 提供示例配置来完成这个吗?基于谷歌搜索它应该很简单,但与所有 javascript 工具一样,它永远不会像你想要的那样简单。我的组件很简单:

import React from 'react';
import ReactDOM from 'react-dom';
import ReactTinyMCE from 'react-tinymce';

Then I just try to display using <ReactTinyMCE>

谢谢!

【问题讨论】:

  • 错误发生在运行时还是构建时?
  • 运行时间。它构建良好。我什至检查了捆绑包,它不包含 react,这很好,因为我在 browserify 和 browserify-shim 中将它声明为外部依赖项。
  • 值得检查的事情:(1)window.React 是否在控制台上产生任何东西? (2) CDN 脚本是否包含在 HTML 源代码中的捆绑脚本之前? (3) 如果您检查您的转译代码,您的 React 变量是否已分配给 window.React
  • React 没有分配给 window.React :( 在 jspm、webpack 或 browserify 中有一些示例配置代码吗?Browserify 应该像 browserify-shim 一样简单,如果我在 gulp 中使用外部捆绑,对吧?

标签: javascript reactjs webpack jspm


【解决方案1】:

这在我的构建中对我有用。来自 webpack.config.js:

externals: {
    react: 'window.React',
    'react-dom': 'window.ReactDOM'
}

它在 bundle.js 中产生以下内容:

/* 1 */
/***/ function(module, exports) {

    module.exports = window.React;

/***/ },

和:

/* 88 */
/***/ function(module, exports) {

    module.exports = window.ReactDOM;

/***/ }

【讨论】:

  • 我坚持使用 webpack :) 我一定是在 jspm 上做错了,但我就是无法让它工作。谢谢!
猜你喜欢
  • 2014-12-14
  • 2017-04-23
  • 2017-10-23
  • 2015-12-31
  • 2020-09-13
  • 2020-12-19
  • 2019-05-08
  • 2017-11-19
  • 1970-01-01
相关资源
最近更新 更多