Я создаю пакет NPM с часто используемыми компонентами в нескольких проектах.Я не хочу связывать свой собственный реактив / реактив в этом пакете, поэтому я делаю следующее в моем webpack.config.js
:
externals: {
react: {
commonjs: 'react',
commonjs2: 'react'
},
'react-dom': {
commonjs: 'react-dom',
commonjs2: 'react-dom'
}
}
Я также указал две вышеуказанные зависимости как peerDependencies
в моем package.json
Я хочу, чтобы этот пакет разделял реакцию реагирования, которую имеет мой родительский проект (также обрабатываемый Webpack).
Когда я собираю свой родительский проектОднако проект с моим пакетом в качестве зависимости, я получаю эту ошибку:
Error: Cannot find module 'react'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/package/dist/main.js:1:898)
at n (/package/dist/main.js:1:62)
at Module.<anonymous> (/package/dist/main.js:22:45607)
at n (/package/dist/main.js:1:62)
at /package/dist/main.js:1:861
at Object.<anonymous> (/package/dist/main.js:1:872)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Module._compile (/parent-project/node_modules/pirates/lib/index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Object.newLoader [as .js] (/parent-project/node_modules/pirates/lib/index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12) code: 'MODULE_NOT_FOUND' }
Мне было интересно, есть ли у кого-нибудь идеи, где я иду не так?Родительский проект - это приложение NextJS, если это помогает ...
РЕДАКТИРОВАТЬ: Я попытался включить пакет в стандартный проект create-react-app
, и это работает.Так что теперь я думаю, что это связано с шагом рендеринга на стороне сервера NextJS?