因为我不想使用多个输出文件(已编译的TypeScript文件),所以我考虑在非Web NodeJS应用程序中使用 webpack 。如果仅通过 Webpack , Dependency 类在 node_modules / some_dependency / index.ts 下构建,则它在 index.babel.js中将不可用,因为默认情况下,webpack应用程序没有全局变量。
require('@babel/register');
// node_modules/some_dependency/index.js (compiled TypeScript)
import Dependency form 'dependency'; // Error!
new Dependency();
export default class Dependency() {
// ---
}
如果仅使用ProvidePlugin,NodeJS模块( index.babel.js )是否可以看到Dependency
?
答案 0 :(得分:0)
最小的 webpack.confing.js 将是:
module.exports = {
entry: './TypeScriptSource/index.ts',
output: {
filename: 'index.js',
path: __dirname,
libraryTarget: 'umd'
},
target: 'node',
module: {
rules: [
{
test: /\.ts?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.ts', '.js']
}
};
现在,如果Dependency
中的类TypeScriptSource/index.ts
具有export default
,则index.babel.js
中的以下代码将起作用:
require('@babel/register');
import Dependency from 'some-depencency';
new Dependency();
index.babel.js
所需的依赖项:
"@babel/core": "7.1.2",
"@babel/node": "7.0.0",
"@babel/preset-env": "7.1.0",
"@babel/register": "7.0.0",