У меня есть компонент, который я хочу опубликовать в npm, я протестировал, просто импортировав его из папки компонентов в проекте.
Мне удалось его опубликовать, но теперь я получаю:
ERROR in ./node_modules/@//index.js Module parse failed: Unexpected token (11:8) You may need an appropriate loader to handle this file type.
Мой index.js выглядит следующим образом:
import React from "react"
import Main from "./bootstrap/containers/main"
export default class BootstrapTable extends React.Component {
constructor(props) {
super(props)
}
render() {
return (
<Main {...this.props} changePage = {(p) => this.props.changePage(p)}/>
)
}
}
Боковое примечание: мне не нужно менять конфигурацию веб-пакета, поскольку он должен работать как есть, как и многие другие пакеты, которые я использую в настоящее время.
Спасибо! глядя на это сейчас: jasonwatmore.com/post/2018/04/14/…





Я решил это благодаря @zerkms за первый шаг, необходимый для моего исследования.
Шаги:
var path = require('path'); module.exports = { mode: 'production', entry: './src/index.js', output: { path: path.resolve('dist'), filename: 'index.js', libraryTarget: 'commonjs2' }, module: { rules: [{ test: /\.js?$/, exclude: /(node_modules)/, use: { loader: 'babel-loader' } }] }, externals: { 'react': 'react', 'react-dom': 'react-dom', 'react-bootstrap': 'react-bootstrap' } }
{ "presets": [ "react", "env", "stage-0" ] }
src .babelrc webpack.config.js
{ "name": "@scope/package-name", "version": "1.0.0", "description": "My component", "main": "dist/index.js", "scripts": { "build": "webpack" }, "repository": { "type": "git", "url": "git+https://github.com/myrepo.git" }, "keywords": [ "react", "bootstrap" ], "author": "Me", "license": "MIT", "peerDependencies": { "react": "^16.4.0", "react-bootstrap": "^0.32.1", "react-dom": "^16.4.0" }, "devDependencies": { "react": "^16.4.0", "react-bootstrap": "^0.32.1", "react-dom": "^16.4.0", "babel-core": "^6.21.0", "babel-loader": "^7.1.4", "babel-preset-env": "^1.6.1", "babel-preset-react": "^6.16.0", "babel-preset-stage-0": "^6.24.1", "path": "^0.12.7", "webpack": "^4.5.0", "webpack-cli": "^2.0.14" } }
Выполнено!
Эти статьи были большим подспорьем:
Поэтому вам нужно превратить его в commonjs + es / js.