2016-06-28 10 views
5

Ich verfolge eine Vorlesung über Angular With Webpack.
Ich versuche, die weniger Lader hinzuzufügen und immer einen Fehler zu erhalten.
Verwenden Sie weniger in Webpack und es6

ERROR in ./src/app.js 
Module not found: Error: Cannot resolve 'file' or 'directory' ../style.less in D:\projects\dev\webpack-angular-demo/src 
@ ./src/app.js 3:0-24 

Mein webpack.config.js ist:

module.exports = { 
    context: __dirname + '/src', 
    entry:'./app.js', 
    module:{ 
     loaders:[ 
      { 
       //create working environment for es6 need to npm i babel-loader babel-core babel-preset-es2015 -D 
       //https://github.com/babel/babel-loader 
       test:/\.js$/, 
       exclude:'/node_modules', 
       loader:'babel', 
       query: { 
        presets: ['es2015'] 
       } 
      }, 
      { 
       //take less convert to css and inject to style tag need to: npm i css-loader less-loader less style-loader -D 
       //https://github.com/webpack/less-loader 
       test:/\.less$/, 
       exclude:'/node_modules', 
       loader:"style!css!less" 
      }   
     ] 
    } 
}; 

Mein app.js ist:

import '../style.less'; 
class Log{ 
    constructor(){ 
     console.log("sdfsdf"); 
    } 
} 
new Log(); 

Im Inneren des src Verzeichnis i haben die app.js, index.html und style. weniger Dateien.

schließlich, das ist mein package.json Datei:

{ 
    "name": "webpack-angular-demo", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "babel-core": "^6.10.4", 
    "babel-loader": "^6.2.4", 
    "babel-preset-es2015": "^6.9.0", 
    "css-loader": "^0.23.1", 
    "less": "^2.7.1", 
    "less-loader": "^2.2.3", 
    "style-loader": "^0.13.1", 
    "webpack": "^1.13.1", 
    "webpack-dev-server": "^1.14.1" 
    } 
} 


eine Ahnung, warum ich diesen Fehler bin immer?
Dank

Antwort

4

ich hatte genau das gleiche Problem. Ich schaffte es, das mit winzigen Veränderungen zu lösen.

path.join(__dirname, 'src') 

statt mit:

__dirname + '/src/ 

jetzt, stellen Sie sicher, dass Ihre webpack.config.js wie folgt aussehen:

var path = require('path'); 

module.exports = { 
context: path.join(__dirname, 'src'), 
... 

und wenn ich importieren Sie die style.less i verwendet wie über

import './style.less'; 
+1

Das war es! Danke vielmals. Ich werde versuchen, auch das "Warum" zu finden. Tnx – gilad

1

Wenn alle Dateien im selben Verzeichnis (src) sind, sollte die erste Zeile in app.js sein: wie Sie

import './style.less';

+0

Anwendung dieses Fixierergebnisses mit mehr Fehlern:
FEHLER in ./src/style.less Modul nicht gefunden: Fehler: 'Datei' oder 'Verzeichnis' kann nicht aufgelöst werden ./../node_modules/ css-loader/index.js in D: \ projects \ dev \ webpack -angular-demo/src @ ./src/style.less 4: 14-116 Fehler in ./src/style.less Modul nicht gefunden: Fehler: 'Datei' oder 'Verzeichnis' kann nicht aufgelöst werden ./. ./node_modules/ style-loader/addStyles.js in D: \ Projekte \ dev \ webpack-eckig-demo/src @ ./src/style.less 7: 13-68 – gilad

+0

mit zwei Punkten wird der richtige Loader verwendet Die Ausschlussregel funktioniert also. Jetzt funktioniert der Ausschluss nicht mehr und der Ordner node_modules wird ebenfalls durchsucht. Ich denke .... – gilad

+0

Wenn ich versuche, "webpack-dev-server" mit Ihrer genauen Einstellung und meinem Vorschlag auszuführen, läuft es gut. Können Sie bestätigen, dass alle Module installiert sind/vielleicht noch einmal "npm install" ausführen? –