2017-09-06 74 views
0

我不明白爲什麼我的導入是錯誤的? 它似乎是一個webpack sourcemap和Karma w之間的問題(它沒有從webpack獲取模塊)。 ??Vue.js單元測試錯誤模塊未找到

我使用的果報的WebPack(2.0.2)...

這裏是我的項目結構

project 
    src 
     components 
     ... 
     ... 
     vuex 
     actions.js 
     getters.js 
     mutation_types.js 
     mutations.js 
     store.js 
     App.vue 
     main.js 
     test 
     unit 
      specs 
       vuex 
       mutations.spec.js 

這裏是我的測試規範文件有進口

// mutations.spec.js 
import mutations from 'src/vuex/mutations' 
import { ADD_SHOPPING_LIST } from 'src/vuex/mutation_types' 
... 

這裏是我的package.json腳本

"scripts": { 
    ... 
    "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", 
    ... 
    }, 

當我執行:NPM運行單元

我得到模塊沒有找到

terminal 
cd project 
npm run unit 

ERROR in ./test/unit/specs/vuex/mutations.spec.js 
Module not found: Error: Can't resolve 'src/vuex/mutations' in '/Users/myself/Developments/project/test/unit/specs/vuex' 

有什麼不對?是不是相對於項目目錄?

感謝反饋

UPDATE

我想修改我karma.conf.js如下:

var webpackConfig = require('../../build/webpack.test.conf') 

module.exports = function (config) { 
    config.set({ 
    browsers: ['PhantomJS'], 
    frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'], 
    reporters: ['spec', 'coverage'], 
    // files: ['./index.js'], <= initial setting 
    files: [ 
     'specs/**/*.spec.js', 
     './index.js' 
    ], 
    // preprocessors: { <= initial setting 
    // './index.js': ['webpack', 'sourcemap'] 
    // }, 
    preprocessors: { 
     'specs/**/*.spec.js': ['webpack', 'sourcemap'], 
     'src/**/*.js': ['webpack', 'sourcemap'], 
     './index.js': ['webpack', 'sourcemap'] 
    }, 
    webpack: webpackConfig, 
    webpackMiddleware: { 
     noInfo: true 
    }, 
    coverageReporter: { 
     dir: './coverage', 
     reporters: [ 
     { type: 'lcov', subdir: '.' }, 
     { type: 'text-summary' } 
     ] 
    } 
    }) 
} 

現在的WebPack正確執行,但進口誤差保持

控制檯

Yvess-Mac-mini:project myself$ npm run unit 

> [email protected] unit /Users/myself/Developments/project 
> cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run 

Hash: 59e0b95047d40a9ddfd1 
Version: webpack 2.7.0 
Time: 3912ms 
         Asset  Size Chunks     Chunk Names 
specs/vuex/mutations.spec.js 9.23 kB  0 [emitted]   specs/vuex/mutations.spec.js 
        index.js 1.28 MB 1, 0 [emitted] [big] index.js 
chunk {0} specs/vuex/mutations.spec.js (specs/vuex/mutations.spec.js) 891 bytes [entry] 
    [0] ./test/unit/specs/vuex/mutations.spec.js 891 bytes {0} {1} [built] 
chunk {1} index.js (index.js) 491 kB [entry] [rendered] 
    [0] ./test/unit/specs/vuex/mutations.spec.js 891 bytes {0} {1} [built] 
    [8] ./~/vue/dist/vue.esm.js 268 kB {1} [built] 
    [9] ./src/api/index.js 4.81 kB {1} [built] 
    [10] ./src/vuex/actions.js 7.95 kB {1} [built] 
    [11] ./src/vuex/mutations.js 2.41 kB {1} [built] 
    [12] ./src/vuex/store.js 2.03 kB {1} [built] 
    [14] ./src/components/AddItemComponent.vue 2.19 kB {1} [built] 
    [16] ./src/components/ItemComponent.vue 2.17 kB {1} [built] 
    [17] ./src/components/ItemsComponent.vue 2.17 kB {1} [built] 
    [18] ./src/components/ShoppingListComponent.vue 2.21 kB {1} [built] 
    [19] ./src/components/ShoppingListTitleComponent.vue 2.23 kB {1} [built] 
    [26] ./src ^\.\/(?!main(\.js)?$) 920 bytes {1} [built] 
    [27] ./test/unit/specs \.spec$ 186 bytes {1} [built] 
    [28] ./test/unit/index.js 657 bytes {1} [built] 
    [73] (webpack)/buildin/global.js 509 bytes {1} [built] 
    + 60 hidden modules 

ERROR in ./test/unit/specs/vuex/mutations.spec.js 
Module not found: Error: Can't resolve 'mutations' in '/Users/myself/project/test/unit/specs/vuex' 
@ ./test/unit/specs/vuex/mutations.spec.js 3:17-37 

ERROR in ./test/unit/specs/vuex/mutations.spec.js 
Module not found: Error: Can't resolve 'mutation_types' in '/Users/myself/project/test/unit/specs/vuex' 
@ ./test/unit/specs/vuex/mutations.spec.js 7:22-47 
06 09 2017 13:38:28.742:INFO [karma]: Karma v1.7.1 server started at http://0.0.0.0:9876/ 
... 
+0

試試'。'/ src目錄/ vuex/mutations'' – talkhabi

+0

感謝doen't工作太..我用更多的信息更新了我的問題,更新了我的karma.conf.js,webpack正在正確執行(請參見輸出),但沒有找到模塊... – erwin

+0

''/ Users/myself/Developments/project/test/unit/specs/vuex''爲什麼這裏沒有'src'? – talkhabi

回答

0

我不應該在'sr/..'中使用。進口

import mutations from '@/vuex/mutations.js' 
import { ADD_SHOPPING_LIST } from '@/vuex/mutation_types.js' 

而是 '@'(爲 '@/omponents/..)

import mutations from '@/vuex/mutations.js' 
import { ADD_SHOPPING_LIST } from '@/vuex/mutation_types.js' 
相關問題