docker - 如何仅使用 webpack bundle node_modules?

标签 docker vue.js webpack

我想捆绑我的 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/
            },
        ]
    },
}

我的文件夹结构

enter image description here

我的问题

如何让 webpack 只打包 node_modulesserver.js ,除了我的 dist/文件夹?

对不起,我的英语不好

最佳答案

Webpack 将您所有的源代码打包并放入 dist文件夹。当你用它构建一个最终的 Docker 镜像时,你想忽略 node_modules和其他不必要的目录。这是.dockerignore的地方文件来帮助你。就像 .gitignore , .dockerignore在构建过程中忽略文件。在 .dockerignore 中提及您要忽略的文件文件。

关于docker - 如何仅使用 webpack bundle node_modules?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919027/

相关文章:

docker - 如何在docker中构建go模块?

node.js - 无法使用 Mongoose 连接到mongodb数据库

javascript - 在 Vuejs 中使用带有动态键的 v-for

javascript - 如何在 vue.js 中为动态组件添加 Prop ?

node.js - WSL 上的 NodeJS+Webpack+Docker 项目使用 native 'fs' 库抛出错误

java - OpenAM OpenDJ dockerization 问题 : Fails to redeploy using old data source

docker - 具有/Terraform Digitalocean负载平衡的Docker Swarm模式。如何自动缩放?

javascript - vuejs中通过变量动态调用方法

javascript - 如何 "hide"ommit Babel/Webpack/Plugins配置文件?

javascript - 无法为我的 react 应用程序禁用实时重新加载 webpack 开发服务器