Laravel:哪些 npm 包应该在 "dependencies" 和 "devDependencies" 中?



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

包.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。

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

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

所有其他 npm javascript 库都可以用 elixir 编译,所以没有必要在生产机器上安装它们。默认情况下,elixir使用webpackresourcesassetsjsapp.js编译为publicjsapp.js,您需要将其作为script包含在网页中。

如果你看一下: resourcesassetsjsbootstrap.js你会看到laravel默认添加的包(比如 vuebootstrapjQuery (,所以,例如,如果你想将dropzone添加到你的项目中,你只需像这样将其添加到bootstrap.js

require('dropzone');

现在,它将编译dropzonepublicjsapp.js使dropzone也成为devDependency

此外,在使用Laravel Mix(它是Webpack的包装器(的较新版本的Laravel中,您的所有依赖项都可以在devDependencies下。

Webpack 将所有内容编译为单个文件(/js/app.js(或多个文件,例如,如果您使用 extract 方法来构建文件(/js/app.js/js/app.js/js/manifest.js(。这些是您的浏览器执行 JavaScript 代码所需的唯一文件;对于 Webpack 来说,找到 devDependencies 下的所有依赖项就足够了。

相关内容

  • 没有找到相关文章

最新更新