我有一个反应组件,我需要将其作为节点模块加载到另一个 webpack2 项目中。使用 babelify 我将反应组件代码转换为普通的 javascript 代码。以下是我提供的用于转换的配置。
browserify: {
dist: {
options: {
transform: [['babelify', {presets: ['es2015', 'react']}]],
external: ['react', 'react-dom']
},
src: ['src/index.js'],
dest: 'dist/comp-babelified.js',
}
}
它成功转换了代码。我可以将它加载到 webpack 应用程序中。但是当 webpack 应用程序在浏览器中加载时,在浏览器控制台中出现以下错误。
Uncaught (in promise) Error: Cannot find module 'react'
如果我external
从 browserify 选项中删除,我会收到以下错误。
Uncaught (in promise) Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.
看起来它基本上无法加载反应组件。
如何纠正这个问题?
更新:我经历了Uncaught ReferenceError: React is not defined。我在全球范围内没有 React。我期待 webpack 能够理解 node_modulesrequire('react')
中已经提供的内容。