【问题标题】:Is node_modules folder still needed after Laravel Mix compiled the assets?Laravel Mix 编译资产后是否还需要 node_modules 文件夹?
【发布时间】:2019-05-25 15:15:00
【问题描述】:

node_modules 文件夹的大小相当大。我想知道我们是否可以在 Laravel Mix 编译完所有内容后将其删除?当然,我之前尝试过(安装jquery),然后在 Laravel Mix 编译完所有内容后删除 node_modules 文件夹。我的jquery 代码仍在运行,完全没有错误。那还好吗?

【问题讨论】:

    标签: laravel npm webpack node-modules laravel-mix


    【解决方案1】:

    你永远不应该将你的 node_modules 文件夹提交给 git。那将需要永远。只需提交 package.jsonpackage-lock.json

    但是,您不希望每次构建代码时都必须重新安装它们。我查了一个大项目,总大小是310 M。你有什么情况不能保持原状?

    为了直接回答你的问题,Laravel 从不运行 node_modules 文件夹中的代码,从那里使用的所有代码都编译到 app.js 中,所以如果你删除它是安全的不得不。

    【讨论】:

    • 所以我在安装新包时只需要 node_modules (并运行npm run production 命令)?
    • @Adrian 就像我说的,来自node_modules 的代码仅在npm run prod 期间使用 - 如果您删除它,任何包都不会出现问题。
    • 是的。我编辑了我的评论。所以如果我需要一个新包或者编译一个新包,有什么办法可以避免再次安装node_modules(删除后)?
    • @Adrian 没有。每次编译代码时都需要它,如果添加新包,则必须重新编译代码。删除node_modules 不是最佳做法。
    • 所以从技术上讲,如果我让它留在我的开发机器中会更好,对吧?
    【解决方案2】:

    是的,你可以在运行后删除它:

    npm run production
    

    运行此命令后,所有必要的代码都将保存在 app.js 中

    当需要 node_modules 时,您可以再次下载它们:

    npm install
    

    【讨论】:

    • 所以我在安装新软件包时只需要node_modules?它等于所有包吗?我认为仅仅因为它适用于 jquery 并不意味着它适用于其他人
    • 当您使用 vuejs 或 react 作为前端时,每次更改代码时都应该编译并且需要 node_modules 但如果您只使用 jquery 或 bootstrap js 或 ... 并编写您的脚本标签中的代码或编译后单独的 js 文件中的代码,您可以删除 node_modules,因为 laravel-mix 会将所有必要的代码捆绑在 app.js 文件中
    猜你喜欢
    • 2012-11-06
    • 2019-04-06
    • 2020-02-14
    • 2018-02-06
    • 1970-01-01
    • 2016-02-13
    • 2020-01-01
    • 1970-01-01
    • 2020-08-23
    相关资源
    最近更新 更多