我希望webpack把我的typescript节点项目编译成js,但我希望它保持目录结构,而不是捆绑成1个文件。
这可能吗?
我的结构是:
src
|_controllers
|_home
|_index.ts
|_ services
// etc.
我想把它编译成:
dist
|_controllers
|_home
|_index.ts
|_ services
// etc.
目前我的配置是这样的:
{
name: 'api',
target: 'node',
externals: getExternals(),
entry: isDevelopment ? [...entries] : entries,
devtool: !isDevelopment && 'cheap-module-source-map',
output: {
path: paths.appBuild,
filename: '[name].js',
libraryTarget: 'commonjs2'
},
plugins: [
new WriteFilePlugin(),
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1
}),
isProduction && new webpack.optimize.ModuleConcatenationPlugin()
]
}
有可能使用webpack吗?
我不能只使用tsc
,因为我有一个yarn workspaces monorepo,并且我可能有一个如下所示的链接引用:import {something} from '@my/package';
@my/package
不存在于npm中,只存在于monorepo的上下文中,我可以使用带有webpack的节点外部对象将其包含在捆绑包中,我不认为我可以保持这种文件夹结构。
新的typescript 3.0项目引用能解决这个问题吗?
1条答案
按热度按时间3pvhb19x1#
理解您的顾虑。看起来transpile-webpack-plugin完全可以实现。您可以按以下方式设置它:
该插件可以很好的与webpack resolve.alias和externals配合使用。所有直接或间接导入的文件都将被收集并单独编译到输出目录中,而不会捆绑,但会保留目录结构和文件名。试试看吧。🙂