在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
使用webpack
将resourcesassetsjsapp.js
编译为publicjsapp.js
,您需要将其作为script
包含在网页中。
如果你看一下: resourcesassetsjsbootstrap.js
你会看到laravel
默认添加的包(比如 vue
, bootstrap
和 jQuery
(,所以,例如,如果你想将dropzone
添加到你的项目中,你只需像这样将其添加到bootstrap.js
require('dropzone');
现在,它将编译dropzone
以publicjsapp.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
下的所有依赖项就足够了。