gpt4 book ai didi

typescript - 是否可以从 node_module 转译本地模块?

转载 作者:搜寻专家 更新时间:2023-10-30 21:10:42 25 4
gpt4 key购买 nike

我有 2 个包含很少类的 typescript 项目。我在 package.json 的 Project2 中添加了 Project1 的依赖

{
"name": "Project2",
"dependencies": {
"@Project1": "file:../Project1/dist"
}
}

两个项目都是用

"target": "es5", "module": "es2015",

我正在使用 Karma-Webpack为项目设置测试环境。为了转译我使用的代码 babel-loader (预设:es2015)而不是 ts-loader。它转译来自 Project2 的代码,但来自位于 node_modules 中的 Project1 的代码未被转译。因此,在运行测试时会抛出以下错误

Chrome 55.0.2883 (Windows 10 0.0.0) ERROR Uncaught SyntaxError:Unexpected token export at spec.bundle.js:80972

我想知道是否可以使用 webpack 从 node_modules 转换本地模块?

注意:如果我将模块类型更改为“commonjs”,它可以工作,但这不是我正在寻找的解决方案。

有什么建议吗???

最佳答案

嗯,我遇到这个错误是因为我使用 es2015 编译父模块。如果你使用 commonjs,你就不会遇到这个问题。

您可以通过在 karma.config.file 中的 webpack 配置中添加以下内容来转译节点模块代码。

webpack: {
resolve: {
extensions: ['', '.ts', '.js']
},

module: {
loaders: [
{
// This will transpile Typescript files
test: /\.ts(x?)$/,
exclude: /node_modules/,
loader: "babel-loader" + "?presets[]=es2015" + "!ts-loader",
},
{
// This will transpile ES2015 javascript files
test: /\.js(x?)$/,
include: [
path.resolve(__dirname, "node_modules/<<YOUR MODULE NAME>>")
],
loader: "babel-loader" + "?presets[]=es2015"
}
]
}
},

现在,Webpack 将使用 babel-loader 转译 JS/TS 代码。

关于typescript - 是否可以从 node_module 转译本地模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41838046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com