【发布时间】:2016-10-05 19:06:11
【问题描述】:
我正在尝试在 NPM 中发布一个使用 React 制作的组件库。
我不希望它具有外部依赖项,甚至是 React 模块,以具有最小的文件大小,因为用户将在应用程序中添加此依赖项。
我正在使用npm 和webpack 来管理依赖项。
-
这是我的
package.json依赖项:"devDependencies": { "webpack": "^1.13.1", "webpack-dev-server": "^1.14.1", "webpack-merge": "^0.13.0", "babel-core": "^6.9.1", "babel-loader": "^6.2.4", "babel-preset-es2015": "^6.6.0", "babel-preset-react": "^6.5.0", "babel-preset-react-hmre": "^1.1.1", "react": "^15.0.2", "react-dom": "^15.0.2" }, "peerDependencies": { "react": "^15.0.2", "react-dom": "^15.0.2" } -
在我的
webpack.config.js文件中,我的入口点为“component.jsx”并输出为“lib.js”文件// Source code entry entry: { lib: './src/components/component.jsx' }, // Code Output output: { path: PATHS.build, filename: 'lib.js' }, -
我还在 react 模块中包含了“externals”属性以避免 webpack 将其包含在“lib.js”输出中。
externals: { 'react': 'React', 'react-dom' : 'ReactDOM' } -
最后这是我要发布的简单 React 组件:
import React from 'react'; export default class Component extends React.Component { constructor() { super(); } render() { return ( <h1>MY COMPONENT</h1> ); } }
我将它发布到 NPM 并安装在另一个项目中。当我在 import React 语句后尝试使用它时,它给了我一个错误,说 React 没有定义 (bundle.js:28448 Uncaught ReferenceError: React is not defined)
-
我探测组件的代码:
import React from 'react'; import ReactDOM from 'react-dom'; import Component from 'component'; import $ from 'jquery'; ReactDOM.render( <Component />, $("#app") );
我是否遗漏了依赖项配置中的任何内容?
谢谢
【问题讨论】:
-
什么版本的 npm?
标签: reactjs npm dependencies components