Laravel Mix 编译资产后是不是还需要 node_modules 文件夹?
Posted
技术标签:
【中文标题】Laravel Mix 编译资产后是不是还需要 node_modules 文件夹?【英文标题】: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
代码仍在运行,完全没有错误。那还好吗?
【问题讨论】:
【参考方案1】:你永远不应该将你的 node_modules
文件夹提交给 git。那将需要永远。只需提交 package.json
和 package-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 文件中以上是关于Laravel Mix 编译资产后是不是还需要 node_modules 文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
javascript 用于AdonisJS的Laravel Mix + TailwindCSS + PurgeCSS资产管道配置
在 AWS Serverless 平台上部署 Laravel (laravel-mix) 应用程序
尝试使用 Laravel Mix 将 Tailwind CSS 添加到 Wordpress 项目时出现“未找到模块”
$(...).DataTable 在使用 Laravel Mix 时不是函数