我想捆绑我的 vue ssr server.js
, 包括所有 node_modules
成一个文件
我已经将我的服务器和客户端代码构建到 dist/
文件夹
现在,我想在 docker 镜像中构建代码
我不想包括 node_modules
最终图像中的文件夹(太大)
所以我决定捆绑我的 server.js
捆绑后,我将删除node_modules
在最终图像中。
但在我的 server.js
const express = require('express')
const bundle = require('./dist/vue-ssr-server-bundle.json')
它需要我的
dist/
js ,我不想要 webpack 包仅 dist/文件夹内容 node_modules
喜欢 express
只有捆绑
node_modules
经过漫长的等待
我收到了
Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
这是我的 webpack 配置
const path = require('path')
const resolve = (...dir) => path.resolve(...dir)
module.exports = {
entry: resolve(__dirname, '../server.js'),
output: {
filename: 'bundled-server.js',
path: resolve(__dirname, '../')
},
mode: 'production',
target: 'node',
resolve: {
extensions: ['.tsx', '.ts', '.js'],
alias: {
}
},
module: {
rules: [
{
use: 'babel-loader',
test: /\.js$/,
exclude: /node_module/
},
]
},
}
我的文件夹结构
我的问题
如何让 webpack 只打包
node_modules
和 server.js
,除了我的 dist/文件夹?对不起,我的英语不好
最佳答案
Webpack 将您所有的源代码打包并放入 dist
文件夹。当你用它构建一个最终的 Docker 镜像时,你想忽略 node_modules
和其他不必要的目录。这是.dockerignore
的地方文件来帮助你。就像 .gitignore
, .dockerignore
在构建过程中忽略文件。在 .dockerignore
中提及您要忽略的文件文件。
关于docker - 如何仅使用 webpack bundle node_modules?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919027/