是否可以从 node_module 转译本地模块?
Is it possible to transpile local modules from node_module?
我有 2 个打字稿项目,其中包含很少 类。我在 package.json
的 Project2 中添加了 Project1 的依赖项
{
"name": "Project2",
"dependencies": {
"@Project1": "file:../Project1/dist"
}
}
两个项目都是使用
构建的
"target": "es5", "module": "es2015",
我正在使用 Karma-Webpack for setting up test environment for the projects. To transpile the code I have used 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 代码
我有 2 个打字稿项目,其中包含很少 类。我在 package.json
的 Project2 中添加了 Project1 的依赖项{
"name": "Project2",
"dependencies": {
"@Project1": "file:../Project1/dist"
}
}
两个项目都是使用
构建的"target": "es5", "module": "es2015",
我正在使用 Karma-Webpack for setting up test environment for the projects. To transpile the code I have used 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 代码