Each new try I getting 2 cases:
"Invalid hook call" - because of double React environment.
"Can't resolve "react"" - if I would remove it from devDependencies in hook library.
Goal is : to set up correct build environment of hook library.
webpack.config.js
const path = require("path")
module.exports = {
mode: "production",
entry: "./src/index.ts",
output: {
filename: "index.js",
path: path.resolve(__dirname, 'dist'),
clean: true,
library: "custom-hook-lib",
libraryTarget: "umd"
},
externals: {
'react': 'react',
'react-dom' : 'reactDOM'
},
resolve: {
extensions: [".js", ".jsx", ".json", ".ts", ".tsx"]
},
module: {
rules: [
{
test: /\.(j|t)sx?$/,
exclude: /(node_modules)/,
use: 'ts-loader'
}
]
}
}
package.json
{
"name": "custom-hook-lib",
"version": "1.0.0",
"description": "",
"main": "dist/index.js",
"module": "dist/index.js",
"files": [
"dist"
],
"keywords": [],
"license": "ISC",
"peerDependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"@types/react": "^18.0.17",
"typescript": "^4.8.2",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"ts-loader": "^9.3.1"
}
}
node_modules
from the hook lib before testing. It has worked for me in the past when usingnpm link
. – Karlmarxstadt