gpt4 book ai didi

reactjs - Browserify 找不到 npm 模块

转载 作者:行者123 更新时间:2023-12-03 13:08:43 25 4
gpt4 key购买 nike

我正在努力创建一个 NPM 模块,非常痛苦:react-smallgrid

import React from 'react';
import _ from 'lodash';


export default class SmallGrid extends React.Component{

编译:

browserify: {
options: {
transform: [
['babelify', {
presets: ['react', 'es2015']
}]
]
},

jsx: {
files: {
'./dist/js/smallgrid.js': [
'./src/smallgrid.jsx',
]
}
},

当我导入js时在另一个项目/jsx 中的文件并尝试浏览该文件,它给出了错误:

Error: Cannot find module './ReactMount' from '/Users/me/code/react-smallgrid/dist/js'

我以为它已经编译好可以使用了?我不明白这个。

同时

我尝试使用 webpack 构建它,它给出以下输出:

> webpack -p

Hash: 00fd87c95d39230bd485
Version: webpack 1.12.11
Time: 14002ms
Asset Size Chunks Chunk Names
smallgrid.js 248 kB 0 [emitted] smallgrid
+ 160 hidden modules

WARNING in smallgrid.js from UglifyJs
Condition always true [./~/react/lib/ReactMount.js:764,0]
Condition always true [./~/react/lib/findDOMNode.js:46,0]
Condition always true [./~/react/lib/instantiateReactComponent.js:80,0]

还是不行。

最佳答案

您需要使 React 库可供您的代码使用。

运行此命令以添加 browserify-shim:

npm i browserify-shim -D

将其添加到您的 package.json 中:

"browserify": {
"transform": [
"browserify-shim"
]
},
"browser": {
"react": "./node_modules/react/dist/react.js",
"react-dom": "./node_modules/react-dom/dist/react-dom.js",
"lodash": "./node_modules/lodash"
},
"browserify-shim": {
"./node_modules/react/dist/react.js": "React",
"./node_modules/react-dom/dist/react-dom.js": "ReactDOM",
"./node_modules/lodash": "lodash"
}
<小时/>

顺便说一句,您还可以在配置中使用 browserify externals 来进一步减少生成的包。最好不要在包中包含例如:React。

<小时/>

注意:

我还给你发了一个PR在 Github 中获取解决方案。

关于reactjs - Browserify 找不到 npm 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34897744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com