首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未解析带有.js扩展的加载器导入(/T)

未解析带有.js扩展的加载器导入(/T)
EN

Stack Overflow用户
提问于 2020-11-12 10:16:02
回答 2查看 378关注 0票数 1

我的目录结构如下:

代码语言:javascript
复制
projectRoot
├── project-server
│   ├── src
│   └── pom.xml
├── project-ui
│   ├── tsconfig.json
│   └── src
│       └── file.ts.  (imports ./file.js)

我的问题是,project-server使用转换后的js文件,这需要.js扩展来解析这些文件。我正在使用webpack-dev-server进行开发并使用ts-loader,但我得到的错误是:

代码语言:javascript
复制
Module not found: Error: Can't resolve './file.js' in 
'/projectRoot/project-ui/src'

以下是我的webpack.config.js

代码语言:javascript
复制
module.exports = {
  entry: './project-ui/src/file1.ts',
  mode: "development",
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.ts$/,
        use: 'ts-loader',
        exclude: /node_modules/
      },
      ... other rules
    ]
  },
  resolve: {
    extensions: ['.js', '.ts'],
  }

我的tsconfig.json具有特定于project-server需要js文件的位置的配置。也就是说,"outDir": "../project-server/src/main/resources/static"

所以我不确定如何配置Webpack/ts-loader来正确解析import语句。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-03 21:50:31

ts-loader本身并不支持带有.js扩展的导入,所以这个项目的https://github.com/softwareventures/resolve-typescript-plugin提供了额外的步骤来完成这项工作。

票数 0
EN

Stack Overflow用户

发布于 2021-09-01 04:31:07

我现在基本上也在处理同样的问题。恐怕我不能给你一个好的答案,尽管我发现了2017年的一个讨论,说ts-loader不支持这种行为:

https://github.com/microsoft/TypeScript/issues/16577#issuecomment-343649391

如果从那以后添加了支持,我还没有找到它的任何细节。

不过,我在webpack.config.jsresolve.alias部分设置别名方面取得了一些成功,因此使用.js的某些文件的相对路径由Webpack解析为.ts等效项。例如:

代码语言:javascript
复制
alias: {
    './file-processing.js': './file-processing.ts',
},

但这是一个非常笨拙的解决方案,根本不能扩展。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64796952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档