在入口路径之外导入文件时,Webpack Babel构建失败



我已经在使用webpack+babel来构建这个项目。我遇到了困难,因为我想在我的节点(服务器(和react应用程序(前端(之间共享一些常量。我的项目结构是这个

- app
- internals
- webpack
- different webpack configs (node, react-dev, react-production etc)
- server
- shared
- .babelrc

我放了一些";常数";文件到共享文件夹中,我从应用程序和服务器中都使用这些文件。当我试图构建我的服务器时,我得到了这个

ERROR in ./shared/reports.constants.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
TypeError: Cannot read property 'code' of null
at transpile (C:UsersXXXDesktopXXXXXXnode_modulesbabel-loaderlibindex.js:70:21)
at Object.module.exports (C:UsersXXXDesktopXXXXXXnode_modulesbabel-loaderlibindex.js
:173:20)

下面是我的webpack配置文件。有什么想法吗?

{
mode: 'production',
target: 'node',
externals: nodeExternals(),
entry: {
server: [path.join(process.cwd(), 'server/index.js')],
},
output: {
filename: '[name].js',
path: path.resolve(process.cwd(), 'build'),
// sourceMapFilename: '[name].js.map',
},
devtool: 'hidden-source-map',
module: {
rules: [
{
test: /.css$/,
use: ExtractTextPlugin.extract(
{ fallback: 'style-loader', use: { loader: 'css-loader', options: { minimize: true } } }),
},
{ test: /.jpg$/, use: [{ loader: 'file-loader', options: { name: '/images/[name].[ext]' } }] },
{ test: /.md$/, use: [{ loader: 'markdown-with-front-matter-loader' }] },
{
test: /.js$/,
exclude: [/node_modules/],
include: [/server/, /shared/],
use: [
'babel-loader',
{
loader: 'webpack-preprocessor-loader',
options: {
debug: process.env.NODE_ENV !== 'production',
directives: {
secret: false,
},
params: {
ENV: process.env.NODE_ENV,
DEBUG: process.env.NODE_ENV !== 'production',
PRODUCTION: process.env.NODE_ENV === 'production',
ENVIRONMENT: process.env.ENVIRONMENT,
},
verbose: false,
},
},
],
},
],
},
plugins
etc
}

.babelrc文件

{
"presets": [
"@babel/preset-env"
],
"plugins": [
"react-hot-loader/babel",
"@babel/transform-runtime",
"transform-html-import-to-string"
]
}

我已将/shared/添加到includes规则中。

提前感谢

由于某种原因,我已经有了一个babel.config.js+babelrc。我所要做的就是进入babel.config.js并添加要包含在env=>生产

感谢您抽出时间

最新更新