Umi: link的依赖包并没有像npm/yarn 安装的依赖一样通过babel编译

Created on 4 Apr 2020  ·  3Comments  ·  Source: umijs/umi

What happens?

link的依赖包并没有像apm/yarn 安装的依赖一样通过babel编译

最小可复现仓库

这是被link的项目地址: https://gitlab.com/oReadyL/umi3.0

clone
yarn
yarn link
yarn link @lxb/test
yarn start // 为啥自身link可运行?

这是出现错误重现的仓库地址:https://gitlab.com/oReadyL/testProject

clone
yarn
yarn link @lxb/test
yarn start // error

相关环境信息

  • Umi 版本:3.0+
  • Node 版本:12.11.1

Most helpful comment

查了下资料 需要设置 include symlinks 实际地址

# .umirc.ts

import * as fs from 'fs';
import getSymlinks from 'get-symlinks';

const config = {


  chainWebpack: (config, { webpack }) => {
    let symlinks = getSymlinks.sync(['./node_modules/**'], { onlyDirectories: true, deep: 1 });
    symlinks.forEach((path: string) => {
      let _path = fs.realpathSync(path);
      config.module.rule('ts-in-node_modules').include.add(_path);
    });
  },
};

export default config;

$ umi webpack --rule=ts-in-node_modules
{
  test: /\.(jsx|ts|tsx)$/,
  include: [
    /node_modules/,
    // 自动添加本地 symlink 的 package
    '/Users/Mizi/git/mt/MasterRT/src/lib',
    '/Users/Mizi/git/mre/projects/mre-met'
  ],
  use: [
    {
      loader: '/Users/Mizi/git/demo/umi-issues/node_modules/babel-loader/lib/index.js',
      options: [Object]
    }
  ]
}

All 3 comments

同上~~

在 2.x 是可以的

升级至 [email protected]

并设置

nodeModulesTransform: {
    type: 'all'
  }

还是无效~~

查了下资料 需要设置 include symlinks 实际地址

# .umirc.ts

import * as fs from 'fs';
import getSymlinks from 'get-symlinks';

const config = {


  chainWebpack: (config, { webpack }) => {
    let symlinks = getSymlinks.sync(['./node_modules/**'], { onlyDirectories: true, deep: 1 });
    symlinks.forEach((path: string) => {
      let _path = fs.realpathSync(path);
      config.module.rule('ts-in-node_modules').include.add(_path);
    });
  },
};

export default config;

$ umi webpack --rule=ts-in-node_modules
{
  test: /\.(jsx|ts|tsx)$/,
  include: [
    /node_modules/,
    // 自动添加本地 symlink 的 package
    '/Users/Mizi/git/mt/MasterRT/src/lib',
    '/Users/Mizi/git/mre/projects/mre-met'
  ],
  use: [
    {
      loader: '/Users/Mizi/git/demo/umi-issues/node_modules/babel-loader/lib/index.js',
      options: [Object]
    }
  ]
}
Was this page helpful?
0 / 5 - 0 ratings