Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js npm链接的本地库需要节点单元模块,而git链接的库(相同)不需要';T_Node.js_Reactjs_Webpack_Npm Link - Fatal编程技术网

Node.js npm链接的本地库需要节点单元模块,而git链接的库(相同)不需要';T

Node.js npm链接的本地库需要节点单元模块,而git链接的库(相同)不需要';T,node.js,reactjs,webpack,npm-link,Node.js,Reactjs,Webpack,Npm Link,很抱歉标题不好(真的不知道我能给这个问题提供什么其他标题) 长话短说,作为第一次react组件库开发人员。我正在使用webpack4将我的组件库传输到一个模块 在我开始使用加速本地开发速度之前,一切都进展顺利 因此,主要的问题是,尽管我已经具体说明如下 //webpack.fancy-react-component-lib.config.js ... externals: { react: { root: 'React', comm

很抱歉标题不好(真的不知道我能给这个问题提供什么其他标题)

长话短说,作为第一次react组件库开发人员。我正在使用webpack4将我的组件库传输到一个模块

在我开始使用加速本地开发速度之前,一切都进展顺利

因此,主要的问题是,尽管我已经具体说明如下

//webpack.fancy-react-component-lib.config.js
...    
externals: {
        react: {
          root: 'React',
          commonjs2: 'react',
          commonjs: 'react',
          amd: 'react',
          umd: 'react',
        },
        'react-dom': {
          root: 'ReactDOM',
          commonjs2: 'react-dom',
          commonjs: 'react-dom',
          amd: 'react-dom',
          umd: 'react-dom',
        },
      }
...

//package.json
...
"dependencies": {},
  "devDependencies": {
   ...
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-redux": "^7.0.3",
    "react-router-dom": "^5.0.0",
    ...
  },
  "peerDependencies": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-redux": "^7.0.3",
    "react-router-dom": "^5.0.0"
  }
...
因此,如果我已经通过git语法导入了模块

"fancy-react-component-lib" :"git+ssh://git@bitbucket.org/fancy-react-component-lib.git#test1.0.11"
一切正常,在最终捆绑的js中只有一份react

但是如果我用npm链接绑定到项目文件夹,react的第二个副本将添加最终绑定的js

谁能告诉我为什么


谢谢

既然没有人能提供更好的答案,我就在这里发布我是如何解决这个问题的

首先,npm链接只是一个符号链接。而不是像react的解决方案页面建议的那样使用npm链接。我试着让自己放松下来,而且效果很好

ln -s [your_fancy_lib_project] [project/node_moduels/your_fancey_lib_project]
您还需要在[your\u fancy\u lib]/node\u modules/react中创建链接,并 [your_fancy_lib]/node_moduels/react dom [project]/node\u moduels/react[project]/node\u moduels/react dom

ln -s [project/node_moduels/react] [your_fancey_lib_project/node_moduels/react]
ln -s [project/node_moduels/react-dom] [your_fancey_lib_project/node_moduels/react-dom]

当然,在创建符号链接之前,请记住清理文件夹。

因为没有人能提供更好的答案,我将在这里发布我是如何解决这个问题的

首先,npm链接只是一个符号链接。而不是像react的解决方案页面建议的那样使用npm链接。我试着让自己放松下来,而且效果很好

ln -s [your_fancy_lib_project] [project/node_moduels/your_fancey_lib_project]
您还需要在[your\u fancy\u lib]/node\u modules/react中创建链接,并 [your_fancy_lib]/node_moduels/react dom [project]/node\u moduels/react[project]/node\u moduels/react dom

ln -s [project/node_moduels/react] [your_fancey_lib_project/node_moduels/react]
ln -s [project/node_moduels/react-dom] [your_fancey_lib_project/node_moduels/react-dom]
当然,记得在创建符号链接之前清理文件夹