Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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
Javascript 当我的汇总项目';这是另一个项目的依赖项_Javascript_Reactjs_Webpack_Babeljs_Rollupjs - Fatal编程技术网

Javascript 当我的汇总项目';这是另一个项目的依赖项

Javascript 当我的汇总项目';这是另一个项目的依赖项,javascript,reactjs,webpack,babeljs,rollupjs,Javascript,Reactjs,Webpack,Babeljs,Rollupjs,我正在尝试使用两个项目创建React网站: React kit存储列表a组件 运行React服务器的React应用程序(并将React工具包作为依赖项) 我主要遵循使用(和)构建我的反应工具包 我使用私有github存储库将React Kit作为依赖项放入我的React应用程序中:(如果需要,我在问题末尾添加了我的所有构建文件(两个项目的汇总、babel和webpack) package.json { /* ... */ "dependencies": { "react-ki

我正在尝试使用两个项目创建React网站:

  • React kit存储列表a组件
  • 运行React服务器的React应用程序(并将React工具包作为依赖项)
我主要遵循使用(和)构建我的反应工具包

我使用私有github存储库将React Kit作为依赖项放入我的React应用程序中:(如果需要,我在问题末尾添加了我的所有构建文件(两个项目的汇总、babel和webpack)

package.json

{
  /* ... */
  "dependencies": {
    "react-kit": "github:myUser/react-Kit",  
    /* ... */
  }
}
{
  "name": "react-kit",
  "version": "0.1.0",
  "description": "React components dictionary for Projects",
  "author": "",
  "license": "ISC",
  "main": "dist/index.js",
  "module": "dist/index.es.js",
  "jsnext:main": "dist/index.es.js",
  "engines": {
    "node": ">=8",
    "npm": ">=5"
  },
  "scripts": {
    "dev": "run-p build:watch start",
    "start": "styleguidist server --open",
    "styleguide:build": "styleguidist build",
    "build": "rollup -c",
    "build:watch": "rollup -c -w",
    "test": "jest",
    "test:coverage": "jest --coverage --forceExit --colors",
    "lint": "esw --ext .jsx --ext .js --color",
    "lint:fix": "npm run lint --fix",
    "prepare": "npm run build",
    "prerelease": "npm run lint:fix && npm run test:coverage && npm run build",
    "release": "npm publish",
    "predeploy": "npm run styleguide:build",
    "deploy": "gh-pages -d styleguide"
  },
  "dependencies": {
    "formik": "^1.5.8"
  },
  "peerDependencies": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-router-dom": "^5.0.1"
  },
  "devDependencies": {
    "@babel/core": "^7.5.4",
    "@babel/plugin-proposal-class-properties": "^7.5.0",
    "@babel/plugin-proposal-object-rest-spread": "^7.5.4",
    "@babel/plugin-proposal-optional-chaining": "^7.2.0",
    "@babel/plugin-syntax-dynamic-import": "^7.2.0",
    "@babel/preset-env": "^7.5.4",
    "@babel/preset-react": "^7.0.0",
    "@svgr/rollup": "^4.3.1",
    "babel-core": "^7.0.0-bridge.0",
    "babel-eslint": "^10.0.2",
    "babel-jest": "^24.8.0",
    "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
    "babel-preset-react-app": "^9.0.0",
    "cross-env": "^5.2.0",
    "enzyme": "^3.10.0",
    "enzyme-adapter-react-16": "^1.14.0",
    "eslint": "^6.0.1",
    "eslint-config-airbnb": "^17.1.1",
    "eslint-plugin-flowtype": "^3.11.1",
    "eslint-plugin-import": "^2.18.0",
    "eslint-plugin-jest": "^22.7.2",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-react": "^7.14.2",
    "eslint-plugin-react-hooks": "^1.6.1",
    "eslint-watch": "^5.1.2",
    "gh-pages": "^2.0.1",
    "jasmine-expect": "^4.0.2",
    "jest": "^24.8.0",
    "jest-pnp-resolver": "^1.2.1",
    "jest-resolve": "^24.8.0",
    "node-sass": "^4.12.0",
    "npm-run-all": "^4.1.5",
    "prop-types": "^15.7.2",
    "react": "^16.8.6",
    "react-app-polyfill": "^1.0.1",
    "react-dom": "^16.8.6",
    "react-router-dom": "^5.0.1",
    "react-styleguidist": "^9.1.11",
    "react-test-renderer": "^16.8.6",
    "rollup": "^1.16.7",
    "rollup-plugin-babel": "^4.3.3",
    "rollup-plugin-commonjs": "^10.0.1",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-peer-deps-external": "^2.2.0",
    "rollup-plugin-postcss": "^2.0.3",
    "rollup-plugin-terser": "^5.1.1",
    "rollup-plugin-url": "^2.2.2",
    "webpack": "^4.35.3",
    "webpack-blocks": "^2.0.1"
  },
  "files": [
    "dist"
  ],
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.{js,jsx,ts,tsx}",
      "!src/**/*.d.ts",
      "!src/**/index.js"
    ],
    "resolver": "jest-pnp-resolver",
    "setupFiles": [
      "react-app-polyfill/jsdom",
      "<rootDir>/scripts/enzymeConfig.js"
    ],
    "testMatch": [
      "**/__tests__/**/*.[jt]s?(x)",
      "**/?(*.)+(spec|test).[jt]s?(x)"
    ],
    "testEnvironment": "jsdom",
    "testURL": "http://localhost",
    "transform": {
      "^.+\\.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest",
      "^.+\\.css$": "<rootDir>/scripts/cssTransform.js",
      "^(?!.*\\.(js|jsx|ts|tsx|css|json)$)": "<rootDir>/scripts/fileTransform.js"
    },
    "transformIgnorePatterns": [
      "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$",
      "^.+\\.module\\.(css|sass|scss)$"
    ],
    "moduleDirectories": [
      "node_modules",
      "src"
    ],
    "moduleNameMapper": {
      "^react-native$": "react-native-web",
      "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
    },
    "moduleFileExtensions": [
      "web.js",
      "js",
      "web.ts",
      "ts",
      "web.tsx",
      "tsx",
      "json",
      "web.jsx",
      "jsx",
      "node"
    ]
  }
}
首先它在本地运行得很好,这对我来说是个大问题?是谁干的

在研究过程中,我注意到:

  • dist/
    不在React Kit github存储库中(但是
    src/
    在这里)
  • dist/
    出现在我的本地
    React应用程序/node\u模块/React工具包/
    (仅使用
    包*.json
    src/
  • 当我在React应用程序上执行我的
    npm I
    时,React工具包被下载(我理解的部分^^^),然后被他的汇总配置文件捆绑
我的反应套件是如何打包的?当我在React应用程序上执行我的
npm I
时,谁调用了启动汇总

Second我打算使用Jenkins在生产环境中部署React应用程序项目,但在本例中 我的react-kit/dist不在这里,并且
react-App/node\u模块/react-kit
只有
package*.json
(因此我的react-App构建失败,因为无法导入
react-kit

这是怎么回事?我尝试在本地和AWS上使用env(dev和prod),但总是一样的

我想我错过了一些东西


反应套件 rollup.config.js

import babel from 'rollup-plugin-babel'
import commonjs from 'rollup-plugin-commonjs'
import external from 'rollup-plugin-peer-deps-external'
import postcss from 'rollup-plugin-postcss'
import resolve from 'rollup-plugin-node-resolve'
import url from 'rollup-plugin-url'
import svgr from '@svgr/rollup'
import { terser } from 'rollup-plugin-terser'

import pkg from './package.json'

export default {
  input: 'src/lib/index.js',
  output: [
    {
      file: pkg.main,
      format: 'cjs',
      sourcemap: true,
    },
    {
      file: pkg.module,
      format: 'es',
      sourcemap: true,
    },
  ],
  plugins: [
    external({
      // includeDependencies: true,
    }),
    postcss({
      plugins: [],
      minimize: true,
      sourceMap: 'inline',
    }),
    url(),
    svgr(),
    resolve(),
    babel({
      plugins: [
        '@babel/plugin-proposal-object-rest-spread',
        '@babel/plugin-proposal-optional-chaining',
        '@babel/plugin-syntax-dynamic-import',
        '@babel/plugin-proposal-class-properties',
        'transform-react-remove-prop-types',
      ],
      exclude: 'node_modules/**',
    }),
    commonjs(),
    // terser(),    // Activate to minimify
  ],
}
const webpack = require('webpack');
const path = require('path');
const Dotenv = require('dotenv-webpack');

const env = process.env.NODE_ENV || 'development';

const config = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  plugins: [
    new Dotenv({
      path: `.env.${env !== 'development' ? env : ''}`,
    })
  ],
  module: {
    rules: [
      {
        test: /\.m?js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      },
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      },
      {
        test: /\.less$/,
        use: [
          'style-loader',
          'css-loader',
          'less-loader'
        ]
      }
    ]
  },
  resolve: {
    extensions: [
      '.js',
      '.jsx'
    ]
  }
}

module.exports = config;
module.exports = function (api) {
  api.cache(true);
  return {
    "presets": [
      "@babel/preset-env",
      "@babel/preset-react"
    ],
    "plugins": [
      "@babel/plugin-proposal-class-properties"
    ]
  }
};
.babelrc

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "modules": false
      }
    ],
    "@babel/preset-react"
  ],
  "env": {
    "test": {
      "presets": [
        [
          "react-app"
        ]
      ]
    }
  },
  "plugins": [
    "@babel/plugin-proposal-object-rest-spread",
    "@babel/plugin-proposal-optional-chaining",
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-proposal-class-properties"
  ]
}
{
  "presets": [
    [
      "@babel/preset-env",
      {
        "modules": false
      },
      "@babel/preset-react'"
    ],
  ],
  "plugins": [
    ["@babel/transform-runtime"]
  ]
}
package.json

{
  /* ... */
  "dependencies": {
    "react-kit": "github:myUser/react-Kit",  
    /* ... */
  }
}
{
  "name": "react-kit",
  "version": "0.1.0",
  "description": "React components dictionary for Projects",
  "author": "",
  "license": "ISC",
  "main": "dist/index.js",
  "module": "dist/index.es.js",
  "jsnext:main": "dist/index.es.js",
  "engines": {
    "node": ">=8",
    "npm": ">=5"
  },
  "scripts": {
    "dev": "run-p build:watch start",
    "start": "styleguidist server --open",
    "styleguide:build": "styleguidist build",
    "build": "rollup -c",
    "build:watch": "rollup -c -w",
    "test": "jest",
    "test:coverage": "jest --coverage --forceExit --colors",
    "lint": "esw --ext .jsx --ext .js --color",
    "lint:fix": "npm run lint --fix",
    "prepare": "npm run build",
    "prerelease": "npm run lint:fix && npm run test:coverage && npm run build",
    "release": "npm publish",
    "predeploy": "npm run styleguide:build",
    "deploy": "gh-pages -d styleguide"
  },
  "dependencies": {
    "formik": "^1.5.8"
  },
  "peerDependencies": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-router-dom": "^5.0.1"
  },
  "devDependencies": {
    "@babel/core": "^7.5.4",
    "@babel/plugin-proposal-class-properties": "^7.5.0",
    "@babel/plugin-proposal-object-rest-spread": "^7.5.4",
    "@babel/plugin-proposal-optional-chaining": "^7.2.0",
    "@babel/plugin-syntax-dynamic-import": "^7.2.0",
    "@babel/preset-env": "^7.5.4",
    "@babel/preset-react": "^7.0.0",
    "@svgr/rollup": "^4.3.1",
    "babel-core": "^7.0.0-bridge.0",
    "babel-eslint": "^10.0.2",
    "babel-jest": "^24.8.0",
    "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
    "babel-preset-react-app": "^9.0.0",
    "cross-env": "^5.2.0",
    "enzyme": "^3.10.0",
    "enzyme-adapter-react-16": "^1.14.0",
    "eslint": "^6.0.1",
    "eslint-config-airbnb": "^17.1.1",
    "eslint-plugin-flowtype": "^3.11.1",
    "eslint-plugin-import": "^2.18.0",
    "eslint-plugin-jest": "^22.7.2",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-react": "^7.14.2",
    "eslint-plugin-react-hooks": "^1.6.1",
    "eslint-watch": "^5.1.2",
    "gh-pages": "^2.0.1",
    "jasmine-expect": "^4.0.2",
    "jest": "^24.8.0",
    "jest-pnp-resolver": "^1.2.1",
    "jest-resolve": "^24.8.0",
    "node-sass": "^4.12.0",
    "npm-run-all": "^4.1.5",
    "prop-types": "^15.7.2",
    "react": "^16.8.6",
    "react-app-polyfill": "^1.0.1",
    "react-dom": "^16.8.6",
    "react-router-dom": "^5.0.1",
    "react-styleguidist": "^9.1.11",
    "react-test-renderer": "^16.8.6",
    "rollup": "^1.16.7",
    "rollup-plugin-babel": "^4.3.3",
    "rollup-plugin-commonjs": "^10.0.1",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-peer-deps-external": "^2.2.0",
    "rollup-plugin-postcss": "^2.0.3",
    "rollup-plugin-terser": "^5.1.1",
    "rollup-plugin-url": "^2.2.2",
    "webpack": "^4.35.3",
    "webpack-blocks": "^2.0.1"
  },
  "files": [
    "dist"
  ],
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.{js,jsx,ts,tsx}",
      "!src/**/*.d.ts",
      "!src/**/index.js"
    ],
    "resolver": "jest-pnp-resolver",
    "setupFiles": [
      "react-app-polyfill/jsdom",
      "<rootDir>/scripts/enzymeConfig.js"
    ],
    "testMatch": [
      "**/__tests__/**/*.[jt]s?(x)",
      "**/?(*.)+(spec|test).[jt]s?(x)"
    ],
    "testEnvironment": "jsdom",
    "testURL": "http://localhost",
    "transform": {
      "^.+\\.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest",
      "^.+\\.css$": "<rootDir>/scripts/cssTransform.js",
      "^(?!.*\\.(js|jsx|ts|tsx|css|json)$)": "<rootDir>/scripts/fileTransform.js"
    },
    "transformIgnorePatterns": [
      "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$",
      "^.+\\.module\\.(css|sass|scss)$"
    ],
    "moduleDirectories": [
      "node_modules",
      "src"
    ],
    "moduleNameMapper": {
      "^react-native$": "react-native-web",
      "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
    },
    "moduleFileExtensions": [
      "web.js",
      "js",
      "web.ts",
      "ts",
      "web.tsx",
      "tsx",
      "json",
      "web.jsx",
      "jsx",
      "node"
    ]
  }
}
babel.config.js

import babel from 'rollup-plugin-babel'
import commonjs from 'rollup-plugin-commonjs'
import external from 'rollup-plugin-peer-deps-external'
import postcss from 'rollup-plugin-postcss'
import resolve from 'rollup-plugin-node-resolve'
import url from 'rollup-plugin-url'
import svgr from '@svgr/rollup'
import { terser } from 'rollup-plugin-terser'

import pkg from './package.json'

export default {
  input: 'src/lib/index.js',
  output: [
    {
      file: pkg.main,
      format: 'cjs',
      sourcemap: true,
    },
    {
      file: pkg.module,
      format: 'es',
      sourcemap: true,
    },
  ],
  plugins: [
    external({
      // includeDependencies: true,
    }),
    postcss({
      plugins: [],
      minimize: true,
      sourceMap: 'inline',
    }),
    url(),
    svgr(),
    resolve(),
    babel({
      plugins: [
        '@babel/plugin-proposal-object-rest-spread',
        '@babel/plugin-proposal-optional-chaining',
        '@babel/plugin-syntax-dynamic-import',
        '@babel/plugin-proposal-class-properties',
        'transform-react-remove-prop-types',
      ],
      exclude: 'node_modules/**',
    }),
    commonjs(),
    // terser(),    // Activate to minimify
  ],
}
const webpack = require('webpack');
const path = require('path');
const Dotenv = require('dotenv-webpack');

const env = process.env.NODE_ENV || 'development';

const config = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  plugins: [
    new Dotenv({
      path: `.env.${env !== 'development' ? env : ''}`,
    })
  ],
  module: {
    rules: [
      {
        test: /\.m?js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      },
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      },
      {
        test: /\.less$/,
        use: [
          'style-loader',
          'css-loader',
          'less-loader'
        ]
      }
    ]
  },
  resolve: {
    extensions: [
      '.js',
      '.jsx'
    ]
  }
}

module.exports = config;
module.exports = function (api) {
  api.cache(true);
  return {
    "presets": [
      "@babel/preset-env",
      "@babel/preset-react"
    ],
    "plugins": [
      "@babel/plugin-proposal-class-properties"
    ]
  }
};
.babelrc

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "modules": false
      }
    ],
    "@babel/preset-react"
  ],
  "env": {
    "test": {
      "presets": [
        [
          "react-app"
        ]
      ]
    }
  },
  "plugins": [
    "@babel/plugin-proposal-object-rest-spread",
    "@babel/plugin-proposal-optional-chaining",
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-proposal-class-properties"
  ]
}
{
  "presets": [
    [
      "@babel/preset-env",
      {
        "modules": false
      },
      "@babel/preset-react'"
    ],
  ],
  "plugins": [
    ["@babel/transform-runtime"]
  ]
}
从中,我了解到,
prepare
在本地环境中使用
npm install
调用,没有参数


你的
prepare
script调用
build
script然后
build
script调用
rollup
command

你的脚本在React kit的package.json中了吗?@Troopers,是的,很多。。我更新了我的答案以添加react kit package.jsonReact-kit是react应用程序的peerDependency还是dependency?它是您的
rollup.config.js
文件中的dependency,您的
输出应该是
文件:'dist/'+pkg.module
文件:'dist/'+pkg.main
。。当一个包裹打包时,我错过了那一部分。现在,当我安装依赖项时,我可以看到对构建的调用。。但我仍然不明白为什么没有在我的jenkins服务器上运行?