VueCLI 2を使用しており、実稼働環境でビルドしています。 build.jsがビルドされ、200KBにコンパイルされます。サーバーを開発として再実行すると、3MBがロードされました。 distフォルダー内のbuild.jsは200KBであると確信しています。 index.htmlを開こうとしましたが、機能せず、Webサイトのルートディレクトリにリダイレクトします。
Package.json
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
},
Webpack
module.exports = { ...
module:{
...
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery'
})
],
devtool: '#eval-source-map'
},
...
}
if (process.env.NODE_ENV === 'production') {
module.exports.devtool = '#source-map'
// http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
compress: {
warnings: true
}
}),
new webpack.LoaderOptionsPlugin({
minimize: true
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module) {
return module.context && module.context.indexOf('node_modules') !== -1;
}
})
])
}
[〜#〜] html [〜#〜]
<body>
<script src="/dist/vendor.js"></script>
<script src="/dist/main.js"></script>
</body>
コマンド
npm run build
npm run dev
npm run build
は、アプリのプロダクションビルドでdist
ディレクトリを作成します。
ブラウザでindex.html
を提供するには、HTTPサーバーが必要です。
たとえば、 serve :
npm install -g serve
serve -s dist
デフォルトのポートは5000
ですが、-l
または--listen
フラグを使用して調整できます。
serve -s build -l 4000
ドキュメント:
express
を使えば非常に簡単で、高度に拡張可能/設定可能です。
インストール
npm install -D express
構成
server.js
// optional: allow environment to specify port
const port = process.env.PORT || 8080
// wire up the module
const express = require('express')
// create server instance
const app = express()
// bind the request to an absolute path or relative to the CWD
app.use(express.static('dist'))
// start the server
app.listen(port, () => console.log(`Listening on port ${port}`))
実行
node server.js
ビルドはサーバーにデプロイする必要があります。そのため、vue-cliにビルドをローカルで実行する組み込みの方法があるとは思いません。
ローカルでビルドを実行するには、サーバーを個別に構成し、次のようにサーバーでビルドを実行する必要があります。
1)以下のコマンドでライトサーバーをインストールします
$ npm install -g lite-server
2)package.jsonに以下のスクリプトを追加します
"lite": "lite-server –port 10001",
"start": "npm run lite"
3)ルートディレクトリにbs-config.jsファイルを作成し、以下のスクリプトを追加します
module.exports = {
port: 3000,
server: {
baseDir: './dist'
}
}
4)最後に、以下のコマンドで実行します
$ npm run start