【问题标题】:Need some clarification on using node_modules需要一些关于使用 node_modules 的说明
【发布时间】:2019-05-14 04:51:06
【问题描述】:

从 NPM 安装某些软件包时,当我使用 --save 时,我是否必须在生产中上传 node_modules?他们说我使用--save 安装的软件包是运行该应用程序所必需的。所以我想知道如果我不上传 node_modules,我的应用是否还能在生产环境中运行。

顺便说一句,我说的是通天塔。

npm install --save-dev @babel/core @babel/cli @babel/preset-env
npm install --save @babel/polyfill

注意第二行使用的是--save

请赐教。

【问题讨论】:

    标签: node.js ecmascript-6 babeljs


    【解决方案1】:

    您必须在服务器上存在 node_modules 才能使应用程序正常工作,绝对如此。但是,执行此操作的常用方法是在服务器上运行 npm install 作为部署脚本/进程的一部分,而不是手动上传 node_modules--save 将更新 package.json 文件,该文件告诉 npm 在你运行 install 时它需要下载哪些包。您将 package.json 上传到 prod,然后在那里运行 npm install

    【讨论】:

    • 您好,感谢您回答我的问题。意思是,当我在服务器上运行 npm install 时,所有使用 --save-dev 的包都不会安装?
    • 大概,您不想在 prod 中使用 dev 依赖项。有关完整说明,请参阅此答案:stackoverflow.com/questions/22891211/…
    • 所以,我必须上传 package.json 而不需要 devDependencies 生产,以便 NPM 只会安装必要的包来运行我的应用程序?因为我只会在本地机器上构建时使用 devDependencies 下的包?
    • 在生产中运行时,应将环境变量 NODE_ENV 设置为“生产”。这样,npm 将不会在 packages.json 文件中安装 dev 依赖项,只会安装主要依赖项。
    • NODE_ENV 对我来说听起来很新鲜。我安装 node.js 时是否包含这些内容?我也应该在服务器上安装node.js,对吧?
    【解决方案2】:

    我建议像这样--save-dev 那样依赖 babel 安装,因为您在生产中不需要它们。

    当您在 prodaction 中安装项目时发送标志 npm install --only=prod 然后你用--save-dev标志安装的库将不会被npm安装在node_modules文件夹中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多