Error: Cannot find module 'jasmine-core'

匿名 (未验证) 提交于 2019-12-03 02:50:02

问题:

I installed the following for testing:

"devDependencies": {     "jasmine-core": "^2.4.1",     "karma": "^0.13.22",     "karma-jasmine": "^0.3.7",     "karma-phantomjs-launcher": "^1.0.0" } 

After running karma start I get the following error:

Doing a search this is the first question with the same problem: karma start Cannot find module 'jasmine-core'

However I've tried both answers, installed jasmine-core globally and I already did npm install jasmine-core --save-dev :(


My test/index.html

<!DOCTYPE html> <html lang="en"> <head>     <title>Jasmine Spec Runner</title>     <link href="testing.css" rel="stylesheet">     <script src="../app/assets/js/libs/vendors.min.js"></script>     <script src="../app/assets/js/bundle.js"></script> </head>  <body>      <div>         <header>             <h1>Jasmine tests for Dashboard</h1>         </header>     </div>  </body> </html> 

My karma.conf.js

// Karma configuration // Generated on Mon Mar 14 2016 11:56:04 GMT-0500 (CDT)  module.exports = function(config) {   config.set({      // base path that will be used to resolve all patterns (eg. files, exclude)     basePath: '.',       // frameworks to use     // available frameworks: https://npmjs.org/browse/keyword/karma-adapter     frameworks: ['jasmine'],       // list of files / patterns to load in the browser     files: [       'app/assets/js/bundle.js',       'test/**/*.js'     ],       // list of files to exclude     exclude: [     ],       // preprocess matching files before serving them to the browser     // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor     preprocessors: {     },       // test results reporter to use     // possible values: 'dots', 'progress'     // available reporters: https://npmjs.org/browse/keyword/karma-reporter     reporters: ['progress'],       // web server port     port: 9876,       // enable / disable colors in the output (reporters and logs)     colors: true,       // level of logging     // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG     logLevel: config.LOG_INFO,       // enable / disable watching file and executing tests whenever any file changes     autoWatch: false,       // start these browsers     // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher     browsers: ['PhantomJS'],       // Continuous Integration mode     // if true, Karma captures browsers, runs the tests and exits     singleRun: true,      // Concurrency level     // how many browser should be started simultaneous     concurrency: Infinity   }) } 

回答1:

Just a guess, but try cleaning the npm cache, removing the node_modules and reinstalling everything from scratch:

$ rm -rf node_modules $ npm cache clean $ npm i  $ sudo npm uninstall -g jasmine-core  $ sudo npm cache clean -f $ sudo npm i -g jasmine-core  


回答2:

When declaring karma in package.json, then it's installed as a local dependency within the node_modules directory of your project. But running karma start from the console executes your globally installed karma. So there are two versions of Karma (local & global) and both have a dependency to jasmine-core, which needs to get installed.

When getting Cannot find module 'jasmine-core' on karma start, then the globally installed Karma misses "jasmine-core". So make sure you have this also installed globally. Best is to run the following commands:

npm install -g karma npm install -g jasmine-core npm install -g karma-jasmine 

Afterwards you should be able to run karma start on a directory which has a karma.conf.js file.

You can also use a locally installed Karma. All you need to do is to install it this way:

npm install --save-dev karma  npm install --save-dev jasmine-core npm install --save-dev karma-jasmine 

If you have done that, then make sure that you also execute it from it's path in node_modules:

./node_modules/karma/bin/karma start 


回答3:

If you start karma on the command line within a local directory, you should install karma-cli globally instead of karma.

Reference



回答4:

Simply navigate to the karma-jasmine directory in the node modules:

cd node_modules/karma-jasmine 

and run npm install. jasmine-core is in the devDependecies inside the package.json file. Navigate back to your root and re-run

karma start karma-conf.js 

This should eliminate that error.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!