Как заставить модуль npm, написанный на es6, указывать на источник при открытии декларации - PullRequest
1 голос
/ 04 мая 2020

Я опубликовал npm модуль, написанный на ES6. Я использовал Babel для переноса его в ES5 и веб-пакет для его связывания.

Теперь, когда я импортирую модуль в свое приложение React и когда я go добавляю в объявление, открывается код ES5.

module.exports = (function (e) {
  var t = {};
  function r(n) {}
...

Я хочу показать код ES6 при открытии объявления в IDE , а не в ES5.

import React from 'react';

export class RerenderTracker extends React.Component {
  componentWillUnmount() {}
...

Вот мой пакет. json

{
  "name": "rerender-tracker",
  "version": "1.0.10",
  "description": "Component for tracking react rerenders",
  "main": "./build/index.js",
  "scripts": {
    "build": "webpack --mode production",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/mtroskot/rerender-tracker.git"
  },
  "keywords": [
    "react",
    "render",
    "rerender",
    "tracker"
  ],
  "author": "Marko Troskot",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/mtroskot/rerender-tracker/issues"
  },
  "homepage": "https://github.com/mtroskot/rerender-tracker#readme",
  "peerDependencies": {
    "react": ">=16"
  },
  "dependencies": {
    "react": "^16.13.1"
  },
  "devDependencies": {
    "@babel/core": "^7.9.6",
    "@babel/plugin-proposal-class-properties": "^7.8.3",
    "@babel/preset-env": "^7.9.6",
    "@babel/preset-react": "^7.9.4",
    "babel-loader": "^8.1.0",
    "babel-runtime": "^6.26.0",
    "webpack": "^4.43.0",
    "webpack-cli": "^3.3.11"
  }
}

мой .babelr c

{
  "presets": ["@babel/preset-env", "@babel/preset-react"],
  "plugins": ["@babel/plugin-proposal-class-properties"]
}

мой webpack.config. js

var path= require("path");

module.exports = {
 entry:"./src/index.js",
 output:{
    path:path.resolve("build"),
    filename:"index.js",
    libraryTarget:"commonjs2"
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  },
  externals:{
  react:"react"
  }
};

Примечание

Это мой первый npm модуль, поэтому, если что-то не так в конфигах или не соответствует рекомендациям, пожалуйста, дайте мне знать.

...