12

在 Laravel 5.3 中,package.json 文件如下所示:所有包都在 devDependencies 中。有人可以告诉我生产中也需要哪些软件包。我认为除了browsersync之外的所有内容。

包.json

{
  "private": true,
  "scripts": {
    "prod": "gulp --production",
    "dev": "gulp watch"
  },
  "devDependencies": {
    "gulp": "^3.9.1", 
    "jquery": "^3.1.0",
    "laravel-elixir": "^6.0.0-9",
    "laravel-elixir-browsersync-official": "^1.0.0",
    "laravel-elixir-vue-2": "^0.2.0",
    "laravel-elixir-webpack-official": "^1.0.2",
    "lodash": "^4.16.2",
    "vue": "^2.0.1",
    "vue-resource": "^1.0.3"
  },
  "dependencies": {
    "dropzone": "^4.3.0"
  }
}

我认为在生产模式下也需要一些像 vue.js 这样的包,所以我会将它们移动到依赖项而不是 devDependencies。

4

2 回答 2

21

所有这些都是devDependencies如果您使用的是elixir

首先,您在生产中不需要elixir,因为它只是一个包装器gulp,希望您能在您的开发机器上编译您的资产并上传它们。

所有其他 npm javascript 库都可以用 编译elixir,因此不需要在生产机器上安装它们。默认情况下elixir用于webpack编译resources\assets\js\app.jspublic\js\app.js您需要包含在网页中的script.

如果你看一下:resources\assets\js\bootstrap.js你会看到laravel默认添加的包(比如vuebootstrapjQuery),所以如果你想添加dropzone到你的项目中,你只需bootstrap.js像这样添加它:

require('dropzone');

现在将编译为dropzone也。public\js\app.jsdropzonedevDependency

于 2016-10-24T15:57:34.737 回答
5

此外,在使用 Laravel Mix(Webpack 的包装器)的较新版本的 Laravel 中,所有依赖项都可以位于devDependencies.

Webpack 将所有内容编译为单个文件 ( /js/app.js) 或多个文件,例如,如果您使用该extract方法构建文件 ( /js/app.js, /js/app.js, /js/manifest.js)。这些是您的浏览器执行 JavaScript 代码所需的唯一文件;对于 Webpack 来构建它们,在devDependencies.

于 2019-08-20T09:32:50.437 回答