【发布时间】:2019-10-12 23:57:37
【问题描述】:
好的,我对 react-node-express 三重奏很陌生。但我会尽力解释这个问题。我有一个由某人制作的库(模块/库)。我正在尝试将该模块中的一些功能导入到我的反应应用程序中 -
import {some_module} from 'some_library';
现在,该模块是一个导出此函数的独立项目,在该项目中它们有 - 导入对某个本地文件的引用,我的导入在加载该文件时会出错:
import * as Util from './util.js';
SyntaxError: Unexpected token import
我的 package.json 有以下依赖项:
"dependencies": {
"@babel/plugin-proposal-class-properties": "^7.4.4",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/runtime": "^7.4.3",
"@bbmx/utilities": "^1.4.0",
"axios": "^0.18.0",
"babel-preset-stage-0": "^6.24.1",
"config": "^3.1.0",
"cookie-parser": "^1.4.4",
"express": "^4.16.3",
"grunt": "^1.0.1",
"grunt-artifactory-artifact": "^1.0.1",
"grunt-contrib-copy": "^1.0.0",
"load-grunt-tasks": "4.0.0",
"lodash": "^4.17.11",
"node-fetch": "^2.6.0",
"react": "^16.8.6",
"react-dom": "^16.5.2",
"react-redux": "^5.0.7",
"react-router-dom": "^5.0.0",
"redux": "^3.7.2",
"redux-thunk": "^2.3.0",
},
"devDependencies": {
"@babel/cli": "^7.1.2",
"@babel/core": "^7.1.2",
"@babel/node": "^7.2.2",
"@babel/plugin-proposal-object-rest-spread": "^7.4.4",
"@babel/plugin-transform-runtime": "^7.4.3",
"@babel/preset-env": "^7.1.0",
"@babel/preset-react": "^7.0.0",
"@babel/register": "^7.4.4",
"babel-loader": "^8.0.4",
"babel-plugin-dynamic-import-node": "^2.2.0",
"babel-polyfill": "^6.26.0",
"css-loader": "^2.1.1",
"enzyme": "^3.9.0",
"enzyme-adapter-react-16": "^1.12.1",
"enzyme-to-json": "^3.3.5",
"file-loader": "^3.0.1",
"jest": "^24.7.1",
"less": "^3.9.0",
"less-loader": "^4.1.0",
"mini-css-extract-plugin": "^0.6.0",
"nodemon": "^1.18.11",
"postcss-loader": "^3.0.0",
"pre-commit": "^1.2.2",
"script-loader": "0.7.2",
"style-loader": "^0.23.1",
"stylelint": "^10.0.1",
"stylelint-config-standard": "^18.3.0",
"webpack": "^4.31.0",
"webpack-cli": "^3.1.2",
"webpack-config-utils": "^2.3.1",
"webpack-dev-middleware": "^3.6.2",
"webpack-hot-middleware": "^2.24.3",
"webpack-node-externals": "^1.7.2"
}
并拥有带有以下配置的 .babelrc 文件。
{
"presets": ["@babel/env", "@babel/react"],
"plugins": ["@babel/plugin-transform-runtime","@babel/plugin-proposal-class-properties","@babel/plugin-syntax-dynamic-import"]
}
使用 web-pack.config 为:
const path = require('path');
const webpack = require('webpack');
const { getIfUtils } = require('webpack-config-utils');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { ifProduction } = getIfUtils(process.env.NODE_ENV || 'development');
const mode = process.env.NODE_ENV || 'development';
const pkg = require('./package.json');
module.exports = [
{
name: 'client',
entry: {
client: ['./client', 'webpack-hot-middleware/client'],
bundle: './client/bundle.js'
},
output: {
path: path.resolve(__dirname, `dist/client/${pkg.version}`),
filename: '[name].js',
publicPath: `/${pkg.version}`
},
devtool: ifProduction('nosources-source-map', 'source-map'),
resolve: {
modules: [path.resolve('./client'), path.resolve('./node_modules')]
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
{
test: /fp-clientlib-v3.js/,
use: ['script-loader']
},
{
test: /\.less$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'less-loader'
]
},
{
test: /\.(ttf|eot|svg|woff2?)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: 'file-loader?name=fonts/[name].[ext]'
},
{
test: /\.png/,
loader:
'file-loader?limit=150000&mimetype=image/png&name=images/[name].[ext]'
},
{
test: /\.jpg/,
loader:
'file-loader?limit=150000&mimetype=image/jpeg&name=images/[name].[ext]'
},
{
test: /\.gif/,
loader:
'file-loader?limit=150000&mimetype=image/gif&name=images/[name].[ext]'
},
{
test: /\.ico/,
loader:
'file-loader?limit=150000&mimetype=image/ico&name=images/[name].[ext]'
}
]
},
mode,
plugins: [
new webpack.HotModuleReplacementPlugin(),
new MiniCssExtractPlugin()
]
}
有人可以帮我解释为什么会发生这种情况吗?
【问题讨论】:
标签: reactjs react-native webpack babeljs