reactjs - 如何让es6编写的npm模块在打开声明时指向源码
问题描述
我已经发布了一个用 ES6 编写的 npm 模块。我使用 Babel 将其转译为 ES5 并使用 webpack 进行捆绑。
现在,当我在我的 React 应用程序中导入模块并进入声明时,ES5 代码被打开。
module.exports = (function (e) {
var t = {};
function r(n) {}
...
我想在 IDE 中打开声明时显示 ES6 代码,而不是 ES5 doe。
import React from 'react';
export class RerenderTracker extends React.Component {
componentWillUnmount() {}
...
这是我的 package.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"
}
}
我的.babelrc
{
"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 模块,所以如果配置中有问题或不遵循最佳实践,请告诉我。
解决方案
推荐阅读
- shell - 使用 sed 替换文件中的版本
- string - Shell 脚本 - 如何从 sting "T=50" 中获得 50?
- google-maps - 如何使用 Google Maps For Flutter 将初始相机位置设置为当前设备的经纬度
- javascript - Puppeteer 无限滚动
- angular - 使用 httpClient 和 Angular 下载 .tar 文件
- angular - 更改类名时,Swiper angular 7 不起作用
- javascript - 对 HTML 表进行排序
- android - 如何以编程方式隐藏和显示android对话框
- python - 添加除法不等式约束
- html - POS 打印机的自定义页面大小