防止通过Brunch将devDependencies包含在vendor.js中 brunch-config.js 项目结构

问题描述

我们正在使用Phoenix v2.10.17作为构建工具运行Elixir / Brunch应用。
(我知道这是早午餐的旧版本,我们希望尽快更新或移至Webpack。)

在早午餐配置(请参见下文)中,我们使用joinTo将js / css连接到单独的文件中,这可以按预期工作。
我们面临的问题在于使用"js/vendor.js": /^node_modules/将来自node_modules的依赖项连接到vendor.js文件中。 这可以工作,因为包括了所有前端依赖项,但是还包括所有devDependencies(例如sinon.js,jsdom等),这导致一个超过5MB的巨大vendor.js文件:(

是否有更好的方法来构建vendor.js并且仅包含前端依赖项?任何帮助将不胜感激!

PS。我在早午餐中读过entryPoints,其中似乎只包含必需的文件。但是我看不到如何在当前设置中实现这一点。

brunch-config.js

javascripts: {
  joinTo: {
    "js/vendor.js": /^node_modules/,"js/app.js": ["assets/js/**/*.js"],"js/web.js": [
      "lib/my_web/components/**/*.js","lib/my_web/components/**/*.css","lib/my_web/views/**/*.js","lib/my_web/views/**/*.css"
    ],"js/admin.js": [
      "lib/my_admin_web/components/**/*.js","lib/my_admin_web/components/**/*.css","lib/my_admin_web/views/**/*.js","lib/my_admin_web/views/**/*.css"
    ]
  }
},stylesheets: {
  joinTo: {
    "css/vendor.css": /^node_modules/,"css/app.css": ["assets/css/app.css"],"css/web.css": [
      "lib/my_web/components/**/*.css","css/admin.css": [
      "lib/my_admin_web/components/**/*.css","lib/my_admin_web/views/**/*.css"
    ]
  }
}

项目结构

project/
├─ assets/
│  ├─ css/
│  │  ├─ app.css
│  │  └─ email.css
│  └─ js/
│     ├─ app.js
│     └─ polyfills.js
├─ lib/
│  ├─ my_web/
│  │  ├─ components/
│  │  │  ├─ foo/
│  │  │  │  ├─ index.js
│  │  │  │  └─ style.css
│  │  │  └─ bar/
│  │  │     ├─ index.js
│  │  │     └─ style.css
│  │  └─ views/
│  │     ├─ foo/
│  │     │  ├─ index.js
│  │     │  └─ style.css
│  │     └─ bar/
│  │        ├─ index.js
│  │        └─ style.css
│  └─ my_admin_web/
│     ├─ components/
│     │  ├─ foo/
│     │  │  ├─ index.js
│     │  │  └─ style.css
│     │  └─ bar/
│     │     ├─ index.js
│     │     └─ style.css
│     └─ views/
│        ├─ foo/
│        │  ├─ index.js
│        │  └─ style.css
│        └─ bar/
│           ├─ index.js
│           └─ style.css
├─ node_modules/
├─ test/
├─ brunch-config.js
└─ package.json

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)