我在 Lerna、Webpack 和 Babel 遇到了一个奇怪的情况,我所有的导入都产生了undefined
价值。
流程很标准,我只是从A导入B。就是这样。
模块 B 有一个prepublish
脚本,可以运行webpack
、捆绑和转换代码并输出到/lib
. 它还./lib/index.js
在main
其package.json
. webpack 配置是最小的,如下所示:
const path = require('path');
module.exports = {
entry: './index.js',
output: {
filename: 'index.js',
path: path.resolve(__dirname, 'lib'),
},
mode: 'production',
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}, ]
}
};
这prebublish
发生在 Lerna 的bootstrap
过程中。到目前为止,我没有看到任何错误并且一切运行顺利。
引导后,当我尝试从 A 导入 B 时,它会undefined
全部产生。(我通过运行它babel-node
)
缩小/转译的版本有数据(如 - webpack 是成功的),它存在于 中node_modules
,这让我更加困惑。
我已经尝试了以下所有导入:
import { httpserver } from 'my-configs';
import * as x from 'my-configs';
console.log(httpserver);
console.log(x);
console.log(require('my-configs/lib/index'));
只为收到以下信息:
undefined
{ default: {} }
{}
知道我在这里缺少什么吗?
当前依赖项:
"devDependencies": {
"@babel/cli": "^7.0.0-beta.40",
"@babel/core": "^7.0.0-beta.40",
"@babel/node": "^7.0.0-beta.40",
"@babel/preset-env": "^7.0.0-beta.40",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^22.4.1",
"babel-loader": "8.0.0-beta.0",
"regenerator-runtime": "^0.11.1",
"webpack": "^4.1.0",
"webpack-cli": "^2.0.10",
}