1

我在 Lerna、Webpack 和 Babel 遇到了一个奇怪的情况,我所有的导入都产生了undefined价值。

流程很标准,我只是从A导入B。就是这样。

模块 B 有一个prepublish脚本,可以运行webpack、捆绑和转换代码并输出到/lib. 它还./lib/index.jsmainpackage.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",
}

4

0 回答 0