我正在尝试在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"
}
Run Code Online (Sandbox Code Playgroud)在我的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'
},
Run Code Online (Sandbox Code Playgroud)我还在反应模块中包含了"externals"属性,以避免webpack包含在'lib.js'输出中.
externals: {
'react': 'React',
'react-dom' : 'ReactDOM'
}
Run Code Online (Sandbox Code Playgroud)最后,这是我想要发布的简单React组件:
import React from 'react';
export default class Component …
Run Code Online (Sandbox Code Playgroud)