因为我不想要多个输出文件(编译的TypeScript文件(,所以我正在考虑将webpack用于非web NodeJS应用程序。如果只是由Webpack、dependency类在node_modules/some_dependence/index.ts下构建,则它在index.babel.js中将不可用,因为默认情况下Webpack应用程序没有全局变量。
index.babel.js
require('@babel/register');
// node_modules/some_dependency/index.js (compiled TypeScript)
import Dependency form 'dependency'; // Error!
new Dependency();
node_modules/some_dependence/index.ts
export default class Dependency() {
// ---
}
NodeJS模块(index.babel.js(如果只是为了使用ProviderPlugin,是否可以看到Dependency
?
最小的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']
}
};
现在,如果TypeScriptSource/index.ts
中的类Dependency
具有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",