Rails 5.1 api webpacker 和 vuejs

Rails 5.1 api webpacker and vuejs

我正在尝试在 Cloud9 上使用 webpacker 在 VueJs 中创建一个 Rails API 和一个客户端。

标准安装后:npm install -g yarn && rails _5.1.4_ new . --api --webpack=vue

我正在使用 Foreman 启动 rails 和 webpack,这是文件。

# Procfile.dev
web: bundle exec rails s -p $PORT -b $IP
webpacker: ./bin/webpack-dev-server --inline true --hot true --public $C9_HOSTNAME

我将 config/webpacker.yml 的开发部分更改为:

development:
  <<: *default
  compile: true

  # Reference: https://webpack.js.org/configuration/dev-server/
  dev_server:
    https: false
    host: localhost
    port: 8081

启动 foreman start 时,webpack 创建 public/packs/manifest.json 包含跟随对象。

{
  "application.js": "/packs/application-d2ce57fea2210882a7d4.js",
  "hello_vue.css": "/packs/hello_vue-9cb5a7334a6577c3422968b9b9970b2f.css",
  "hello_vue.js": "/packs/hello_vue-d8d50a7562d6abcbea06.js"
}

我创建了一个 public/index.html 文件,其中包含以下内容

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="packs/hello_vue-9cb5a7334a6577c3422968b9b9970b2f.css" />
  </head>

  <body>
    <script type="text/javascript" src="packs/application-d2ce57fea2210882a7d4.js"></script>
    <script type="text/javascript" src="packs/hello_vue-bd484161b1956b3a536b.js"></script>
  </body>
</html>

现在,当我转到 URL 时,我的 JavaScript 控制台中有 Hello World from Webpacker,浏览器中有 Hello Vue!

我的问题是:是否可以使用这个生成的 manifest.json 来自动启动好的文件(js,css)以及如何?

有一个名为 html-webpack-plugin 的插件可以创建包含所有好的 css 和 js 链接的 index.html 文件。

我只需要 npm install html-webpack-plugin --save-dev 然后像这样修改我的 config/webpack/development.js :

const environment = require('./environment')
const HtmlWebpackPlugin = require('html-webpack-plugin')

environment.plugins.prepend('HtmlWebpackPlugin', new HtmlWebpackPlugin({
  title: 'My Vuejs App',
  inject: true
}))

module.exports = environment.toWebpackConfig()