与webpack捆绑在一起时,如何使node.js在没有node_modules的情况下工作?

时间:2018-08-20 06:06:10

标签: node.js docker webpack yarnpkg

我想部署应用程序而不必捆绑文件夹中的所有node_modules。

所以不要部署此文件夹:

  • app.js
  • node_modules(大文件夹)

有类似的东西

  • app.js
  • binary_dependencies

var sTableName = document.getElementById("tablename"); for(var i=0;i<sTableName.children[0].childElementCount;i++) { var tableRow = sTableName.children[0].children[i]; for(var j=0;j<tableRow.childElementCount;j++) { var tableColumn = tableRow.children[j]; console.log('Cell ['+i+','+j+'] value: '+tableColumn.innerText); } } 中,应仅包含binary_dependencies文件中不能包含的二进制文件。

原因是因为app.js将在docker中创建一个较大的层(500MB),并且上载速度很慢。我想缩小尺寸。

2 个答案:

答案 0 :(得分:0)

使用package.json文件上传代码,然后将cd加载到文件夹并运行npm install 假设您具有以下内容,请注意要安装的版本:

"dependencies": {
    "bluebird": "^3.5.1",
    "body-parser": "^1.18.3"
  }

将其更改为:

"dependencies": {
    "bluebird": "3.5.1",
    "body-parser": "1.18.3"
  }

答案 1 :(得分:0)

就我而言,我没有任何“ binary_dependencies”-所有提供的模块都捆绑在“ app.js”中。但是,起初我必须禁用webpack-node-externals,因为它故意从捆绑的“ app.js”中排除了某些模块。禁用该模块后,我在docker容器上只需要有“ Node”和app.js。通过运行“ node app.js”,我可以启动“ express.js”服务器,而无需提供“ node_modules”因为它们已经捆绑在我的“ app.js”中。