如何防止在我的tfs版本中运行`npm test`时出现ENOENT错误?

问题描述:

我想在我的TFS运行NPM测试版本,但我得到每次我得到一个错误ENOENT:如何防止在我的tfs版本中运行`npm test`时出现ENOENT错误?

C:\Program Files\nodejs\npm.cmd run test

npm ERR! path E:\Agents\agent_work\38\package.json

npm ERR! code ENOENT

npm ERR! errno -4058

npm ERR! syscall open

npm ERR! enoent ENOENT: no such file or directory, open 'E:\Agents\agent_work\38\package.json'

npm ERR! enoent This is related to npm not being able to find a file.

我跟着this tutorial of Microsoft建立我的体型,我也包括在内npm cache clean,因为我读了如果您在安装过程中遇到了可能会修复它的问题。

当我运行npm test本地正常工作

下面是我的配置文件。

这是karma.config.js:

module.exports = function (config) { 
    var testWebpackConfig = require('./webpack.test.js'); 
    config.set({ 

    basePath: '.', 
    frameworks: ['jasmine'], 

    plugins: [ 
     require('karma-jasmine'), 
     require('karma-phantomjs-launcher'), 
     require('karma-webpack'), 
     require('karma-sourcemap-loader'), 
     require('karma-jasmine-html-reporter'), 
     require('karma-junit-reporter') 
    ], 

    // list of files/patterns to load in the browser 
    files: [ 
     { pattern: 'spec.bundle.js', watched: false } 
    ], 

    preprocessors: { 
     'spec.bundle.js': ['webpack', 'sourcemap'] 
    }, 

    // webpack 
    webpack: testWebpackConfig, 

    reporters: ['progress', 'kjhtml', 'junit'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['PhantomJS'], 
    singleRun: false, 
    concurrency: Infinity, 
    junitReport: { 
     outputDir: '', 
     outputFile: 'test.xml' 
    } 
    }) 
} 

这是spec.bundle.js:

import 'core-js'; 
import 'zone.js/dist/zone'; 
import 'zone.js/dist/long-stack-trace-zone'; 
import 'zone.js/dist/proxy.js'; 
import 'zone.js/dist/sync-test'; 
import 'zone.js/dist/jasmine-patch'; 
import 'zone.js/dist/async-test'; 
import 'zone.js/dist/fake-async-test'; 

import { getTestBed } from '@angular/core/testing'; 
import { 
    BrowserDynamicTestingModule, 
    platformBrowserDynamicTesting 
} from '@angular/platform-browser-dynamic/testing'; 

import 'rxjs'; 

getTestBed().initTestEnvironment(
    BrowserDynamicTestingModule, 
    platformBrowserDynamicTesting() 
); 

var testContext = require.context('./src', true, /\.spec\.ts/); 

function requireAll(requireContext) { 
    return requireContext.keys().map(requireContext); 
} 

var modules = requireAll(testContext); 

该错误消息表示,NPM测试命令不能找到 “的package.json”文件。请确保您的package.json文件已上传到源代码管理并在构建过程中下载,并且您在构建定义中为npm任务配置了package.json文件(包含package.json的工作文件夹)的正确路径。

+0

我没有针对包含karma配置的文件夹,因为我将其作为目标文件夹。 – Friso