我想将我的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 /文件夹除外?
对不起,我的英语不好
答案 0 :(得分:0)
Webpack捆绑了所有源代码,并将其放入dist
文件夹中。从中构建最终的Docker映像时,您想忽略node_modules
和其他不必要的目录。这就是.dockerignore
文件的帮助所在。就像.gitignore
一样,.dockerignore
在构建过程中会忽略文件。在.dockerignore
文件中提及要忽略的文件。