Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

umi 能否转义node_modules 下的ts,es6,tsx,jsx,less 文件? #350

Closed
lusess123 opened this issue Apr 19, 2018 · 15 comments
Closed

Comments

@lusess123
Copy link

lusess123 commented Apr 19, 2018

./node_modules/ddd/index.tsx
Module parse failed: Unexpected token (3:15)
You may need an appropriate loader to handle this file type.
| 
| import React, { Fragment } from 'react';
| export const gg:any =()=>{
|     return  <h1>123</h1>
| }

无法处理第三方模块内的文件

@lusess123 lusess123 changed the title umi 能否转义node_modules 下的ts,es6,tsx.less 文件? umi 能否转义node_modules 下的ts,es6,tsx,jsx,less 文件? Apr 19, 2018
@sorrycc
Copy link
Member

sorrycc commented Apr 19, 2018

@lusess123
Copy link
Author

lusess123 commented Apr 19, 2018

我刚加了

extraBabelIncludes:[
        '/node_modules/ddd/index.tsx'
  ],`  

结果还是不行的, webpack 里的rule 不是把 node_modules 文件夹排除了吗 ?

@lusess123
Copy link
Author

我console 了下webpack config :

{ test: /\.(js|jsx)$/,
    include: '/Users/xxx/xxx/work/xxx/akvue/packages/ak-mui-host/node_modules/ddd/index.tsx',
    use: [ [Object], [Object] ] } ]

貌似我想转义不仅仅是bable 的, 而是 tsx ,ts 也有可能是less , css
另外还有一个问题:
我该如何debug spawn.sync 出来的进程?

@sorrycc
Copy link
Member

sorrycc commented Apr 19, 2018

最好别这样做,node_modules 下的包自己能控制的话,还是用 babel 转成 es5 后再发到 npm 吧。

@lusess123
Copy link
Author

lusess123 commented Apr 19, 2018

我的需求主要有以下几个考虑?
1 node_modules 下的包 我不一定是要发布到npm ,而只是想用lerna 简单对本地代码拆成多个包, 以更好进行模块化管理
2 npm上很多包有分成 cjs , es ,lib 版本, 不在乎多个 src 吧
3 vue 3.0 的 @ vue/cli-service 起步比较晚 ,不过也支持了加载.vue 文件,并且还做了 package 的 文件更新HRM , 我们不能落后吧

@sorrycc
Copy link
Member

sorrycc commented Apr 20, 2018

这是约定,babel 转换 node_modules 下的文件太慢了,用 lerna 管理也需要把 src 转为 lib 。

@sorrycc sorrycc closed this as completed Apr 20, 2018
@sorrycc
Copy link
Member

sorrycc commented Apr 20, 2018

相关:sorrycc/blog#68

@ypli0629
Copy link

+1 同用lerna管理依赖 babel转换 node_modules 应该提供个选项吧

@dkvirus
Copy link

dkvirus commented Dec 24, 2018

问题加了这个属性,启动都是正常的,只是子包中 antd 部分组件样式丢失什么鬼?不处理子包的样式吗?

@tourze
Copy link

tourze commented Oct 17, 2019

同样关注这个呀

@KMBaby-zyl
Copy link
Contributor

在调试自己开发的npm模块的时候,无法调试ts文件会很不方便

@lusess123
Copy link
Author

在调试自己开发的npm模块的时候,无法调试ts文件会很不方便

可以自己配置的

@guoxmin
Copy link

guoxmin commented Nov 25, 2020

我的需求主要有以下几个考虑?
1 node_modules 下的包 我不一定是要发布到npm ,而只是想用lerna 简单对本地代码拆成多个包, 以更好进行模块化管理
2 npm上很多包有分成 cjs , es ,lib 版本, 不在乎多个 src 吧
3 vue 3.0 的 @ vue/cli-service 起步比较晚 ,不过也支持了加载.vue 文件,并且还做了 package 的 文件更新HRM , 我们不能落后吧

我们也有这个需求,你后面是怎么解决的?

@lusess123
Copy link
Author

我的需求主要有以下几个考虑?
1 node_modules 下的包 我不一定是要发布到npm ,而只是想用lerna 简单对本地代码拆成多个包, 以更好进行模块化管理
2 npm上很多包有分成 cjs , es ,lib 版本, 不在乎多个 src 吧
3 vue 3.0 的 @ vue/cli-service 起步比较晚 ,不过也支持了加载.vue 文件,并且还做了 package 的 文件更新HRM , 我们不能落后吧

我们也有这个需求,你后面是怎么解决的?

现在tsx默认 已经是会走babel 的了, 另外 你本地可以自己建软链,
注意:建src目录的软链,而不是整个模块文件夹的, 另外还要把 symlinks 设置为false.

@henryzp
Copy link

henryzp commented Sep 29, 2021

@lusess123 ,请教一下,你的umi文件是怎么配的?

我这边试了一下tsx不会走babel:

image

我的入口是index.ts文件,然后里面各自引用了tsx文件,报错:

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants