NodeJS+TypeScript+Webpack4:访问非web NodeJS应用程序的webpack应用程序变量



因为我不想要多个输出文件(编译的TypeScript文件(,所以我正在考虑将webpack用于非web NodeJS应用程序。如果只是由Webpackdependency类在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",

相关内容

最新更新