[Bug]san-loader与ts-loader一起使用,watch模式下编译报错
xueran opened this issue · comments
Version
san-cli/packages/san-loader版本0.1.1
Describe the bug
实际项目中,.san文件里面的script采用lang="ts"编写,然后ts编译采用ts-loader,开启watch模式的时候,除了第一次编译正常,后面更新代码触发watch重新编译,会报错
使用san-loader里面提供的example例子也可以复现,把babel-loader换成ts-loader,一些.ts文件也会过san-loader,导致编译报错
To Reproduce
1、cd san-cli/packages/san-loader/examples
2、修改src/components/comp-component.san,script添加 lang="ts"
3、修改package.json,build命令添加--watch
"scripts": {
"start": "http-server -c-1 dist",
"build": "webpack --watch"
}
4、修改webpack.config.js,把.ts的编译从babel-loader换成ts-loader
{
test: /\.ts$/,
use: [
{
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.san$/] // 给.san文件添加.ts后缀
}
}
]
}
5、在san-loader的lib/loader.js的入口打调试信息,输出文件路径
console.log('san-loader', this.resourcePath);
6、运行npm run build,第一次编译经过的san-loader文件正常,文件再修改一次的时候,触发watch编译,然后经过san-loader的文件就不对了,一些ts文件也会直接过san-loader编译,log如下
san-loader /Users/yuanxueran/Documents/code/baidu/san-cli/packages/san-loader/examples/src/components/ts/comp-simple-ts/index.ts
san-loader /Users/yuanxueran/Documents/code/baidu/san-cli/packages/san-loader/examples/src/components/comp-component.san
san-loader /Users/yuanxueran/Documents/code/baidu/san-cli/packages/san-loader/examples/types/index.d.ts
san-loader /Users/yuanxueran/Documents/code/baidu/san-cli/packages/san-loader/examples/src/components/comp-component.san
Expected behavior.
触发watch编译的时候,ts文件不应该过san-loader才对
已经线下沟通,并非bug,关掉了~
求问这个是怎么解决的呀