2017-01-08 7 views
8

私はフォント素晴らしいVUE-CLIはWebPACKの-単純なテンプレートを使って作成した簡単なVueのアプリでを使用しようとしているが、これはトリッキーされています。使用フォント-素晴らしいVUE-CLIで作成VueのアプリでのWebPACK

私はnpm install font-awesome --saveを使用してフォント-awesomeがインストールされ、これが私の現在のwebpack.config.jsファイルである私のエントリーJS(main.js)

import Vue from 'vue' 
import App from './App.vue' 
import VueRouter from 'vue-router'; 
import Home from "./components/Home.vue" 

Vue.use(VueRouter); 

import 'font-awesome/css/font-awesome.css'; 

const routes = [ 
    { path: '/', component: Home } 
]; 

const router = new VueRouter({ 
    routes, 
    mode: 'history' 
}); 

new Vue({ 
    el: '#app', 
    router, 
    render: h => h(App) 
}) 

でそれをインポート:

var path = require('path') 
var webpack = require('webpack') 

module.exports = { 
    entry: './src/main.js', 
    output: { 
    path: path.resolve(__dirname, './dist'), 
    publicPath: '/dist/', 
    filename: 'build.js' 
    }, 
    module: { 
    rules: [ 
     { 
     test: /\.vue$/, 
     loader: 'vue-loader', 
     options: { 
      loaders: { 
      // Since sass-loader (weirdly) has SCSS as its default parse mode, we map 
      // the "scss" and "sass" values for the lang attribute to the right configs here. 
      // other preprocessors should work out of the box, no loader config like this nessessary. 
      'scss': 'vue-style-loader!css-loader!sass-loader', 
      'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax' 
      } 
      // other vue-loader options go here 
     } 
     }, 
     { 
     test: /\.js$/, 
     loader: 'babel-loader', 
     exclude: /node_modules/ 
     }, 
     { 
     test: /\.(png|jpg|gif|svg)$/, 
     loader: 'file-loader', 
     options: { 
      name: '[name].[ext]?[hash]' 
     } 
     }, 
     { 
     test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, 
     loader: "url?limit=10000&mimetype=application/font-woff" 
     }, { 
     test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, 
     loader: "url?limit=10000&mimetype=application/font-woff" 
     }, { 
     test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, 
     loader: "url?limit=10000&mimetype=application/octet-stream" 
     }, { 
     test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, 
     loader: "file" 
     }, { 
     test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, 
     loader: "url?limit=10000&mimetype=image/svg+xml" 
     } 
    ] 
    }, 
    resolve: { 
    alias: { 
     'vue$': 'vue/dist/vue.common.js' 
    } 
    }, 
    devServer: { 
    historyApiFallback: true, 
    noInfo: true 
    }, 
    performance: { 
    hints: false 
    }, 
    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: false 
     } 
    }), 
    new webpack.LoaderOptionsPlugin({ 
     minimize: true 
    }) 
    ]) 
} 

私はすでにフォントローダーを次のように変更してみてください。

{ 
    test: /\.(png|jpe|jpg|gif|woff|woff2|eot|ttf|svg)(\?.*$|$)/, 
    loader: 'file-loader', 
    options: { 
     name: '[name].[ext]?[hash]' 
    } 
} 

どちらの設定でも、同じエラー:一部のGoogleの後

ERROR in ./~/font-awesome/css/font-awesome.css 
Module parse failed: /home/james/projects/app/node_modules/font-awesome/css/font-awesome.css Unexpected character '@' (7:0) 
You may need an appropriate loader to handle this file type. 
| /* FONT PATH 
| * -------------------------- */ 
| @font-face { 
| font-family: 'FontAwesome'; 
| src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); 
@ ./src/main.js 11:0-43 
@ multi main 

が、私はいくつかのリンク(例えばhereherehere)を見つけましたが、それらのいずれかが私のために働く、エラーは常に同じです。

いただきましフォント素晴らしいファイルに対処するための推奨ローダーがありますか?私はすべての正規表現が私にはうまく見えるので、問題はローダーにあると思う。以下の情報について

は、package.jsonでバージョンです:

"dependencies": { 
    "bulma": "^0.3.0", 
    "font-awesome": "^4.7.0", 
    "vue": "^2.1.0", 
    "vue-resource": "^1.0.3", 
    "vue-router": "^2.1.1" 
    }, 
    "devDependencies": { 
    "babel-core": "^6.0.0", 
    "babel-loader": "^6.0.0", 
    "babel-preset-es2015": "^6.0.0", 
    "cross-env": "^3.0.0", 
    "css-loader": "^0.25.0", 
    "file-loader": "^0.9.0", 
    "style-loader": "^0.13.1", 
    "vue-loader": "^10.0.0", 
    "vue-template-compiler": "^2.1.0", 
    "webpack": "^2.1.0-beta.25", 
    "url-loader": "^0.5.5", 
    "webpack-dev-server": "^2.1.0-beta.9" 
    } 

答えて

3

あなたがあなたのWebPACK構成で.cssためのローダーを含める必要がありそうです:

{ 
    test: /\.css$/, 
    loader: 'css-loader' 
    }, 
+0

たぶん "CSS-ローダー" 専用です十分ではない。 loader: 'style-loader!css-loader'またはloader: 'style-loader!css-loader?sourceMap''(ソースマップを使用)を試すことができます。 –

+0

あなたの答えをありがとう。今は試しましたが、うまくいきませんでした。私は、NPM CSS-ローダー--save-dev'をインストールしては設定を示唆含むが、今、私はエラー '/home/james/Projects/app/node_modules/loader-runner/lib/loadLoader.js:35を受け' intaled \t \t \tスロー新しいError(「モジュール「」+ loader.path +「」()正常またはピッチ機能を持っている必要があり、ローダではありません」); \t \t \t^ エラー:モジュール '/home/james/Projects/app/node_modules/url/url.js'はローダーではありません(正常またはピッチ機能が必要です)。すべてのヒント? – James

+0

'loader:' configsでは、 'url'ではなく' url-loader'を使います。 (例えば、変更 'ローダー:「?URLリミット= 10000'に'ローダー:」?。URLローダの限界= 10000'また 'ローダーを持っている:「'ローダーでなければなりませんfile'':」ファイルローダーを「'あなた' package.json'によると、あなたがインストールされているすべてのローダーを持って何かをインストールする必要はありません最後のヒント:。。。すでにWebPACKの1を十分に知っているか、またはあなたが持っていない限りWebPACKの2は(まだベータ版である一方、WebPACKの1を使用しますWebpack 2を使用するための正当な理由) –

関連する問題