执行捆绑软件时,使用相应子包装的模块

时间:2019-04-06 20:38:49

标签: javascript node.js typescript npm webpack

设置

我创建了一个包含3个npm软件包的项目;根,客户端和服务器。每个软件包都包含他们特定需要的依赖关系; root有构建工具,客户有反应,服务器有表达-您明白了。

现在...我意识到这可能不是一个好主意,因为在同一个地方失去一些协同作用,但意识到这就是我这样做的一部分。

fn f(_: impl Happy) {
}

fn main() {
    f((Dog{}, Alligator{}));
}

Webpack配置:

/node_modules
/package.json
/webpack.config.js
/...etc

/dist
├── server-bundle.js
└── client-bundle.js

/client
├── node_modules/
├── package.json
└── src/

/server
├── node_modules/
├── package.json
└── src/
    └── index.ts

问题

构建和捆绑工作正常,但是在启动服务器module.exports = [ { entry: "./client/src/index.tsx", mode: "development", output: { filename: "client-bundle.js", path: __dirname + "/dist" }, devtool: "source-map", resolve: { extensions: [".ts", ".tsx", ".js", ".json"] }, module: { noParse: /node_modules/, rules: [ { test: /\.tsx?$/, loader: "ts-loader" }, { enforce: "pre", test: /\.js$/, loader: "source-map-loader" } ] }, externals: { "react": "React", "react-dom": "ReactDOM" }, }, { entry: "./server/src/index.ts", mode: "development", output: { filename: "server-bundle.js", path: __dirname + "/dist" }, resolve: { extensions: [".ts", "tsx", ".js", ".json"] }, module: { noParse: /node_modules/, rules: [ { test: /\.tsx?$/, loader: "ts-loader" }, ], }, } ]; 时出现错误消息,提示节点node dist/server-bundle.js因为根软件包没有这种依赖性。

将所有依赖关系移到根源将解决所有问题。

问题

有什么方法可以使其在这种结构下工作吗?或者我的概念方法错了吗?

1 个答案:

答案 0 :(得分:1)

只需将/dist/client/dist/server/dist/移入项目即可。