未捕获错误:找不到模块' ./ charset.js'

时间:2016-04-02 05:03:49

标签: javascript socket.io npm gulp

为什么我收到此错误?

Uncaught Error: Cannot find module './charset.js'

的package.json

{
  "name": "app",
  "version": "1.0.0",
  "description": "Application built with Flux and React.js",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Joe Collins",
  "license": "",
  "devDependencies": {
    "browserify": "*",
    "flux": "*",
    "gulp": "*",
    "reactify": "*",
    "vinyl-source-stream": "*",
    "object-assign": "*"
  },
  "dependencies": {
    "bufferutil": "^1.2.1",
    "charset": "^1.0.0",
    "http": "0.0.0",
    "react": "^0.14.7",
    "react-dom": "^0.14.7",
    "socket.io": "^1.4.5",
    "utf-8-validate": "^1.2.1"
  }
}

gulpfile.js

var gulp = require('gulp');
var browserify = require('browserify');
var reactify = require('reactify');
var source = require('vinyl-source-stream');

gulp.task('browserify', function() {
    browserify('./src/js/main.js')
        .transform('reactify')
        .bundle()
        .pipe(source('main.js'))
        .pipe(gulp.dest('dist/js'))
});

gulp.task('copy', function() {
    gulp.src('src/index.html')
        .pipe(gulp.dest('dist'));
    gulp.src('src/css/*.*')
        .pipe(gulp.dest('dist/css'));
    gulp.src('src/js/vendors/*.*')
        .pipe(gulp.dest('dist/js'));
});

gulp.task('default', ['browserify', 'copy'], function() {
    return gulp.watch('src/**/*.*', ['browserify', 'copy']);
});

App.js

var io = require('socket.io')();

2 个答案:

答案 0 :(得分:1)

您必须将socket.io-client用于客户端。我有一个预感,charset.js使用二进制文件,或者无法转换为浏览器的东西。

https://github.com/socketio/socket.io-client

答案 1 :(得分:1)

我遇到了同样的问题,但是我用其他模块重新安装了最新版本,它正在为我工​​作

问题

Error: Cannot find module './charset.js'
1) If you want to compile the package/file into executable, please pay attention to compilation warnings and specify a literal in 'require' call. 2) If you don't want to compile the package/file into executable and want to 'require' it from filesystem (likely plugin), specify an absolute path in 'require' call using process.cwd() or process.execPath.
    at Function.Module._resolveFilename (module.js:534:15)
    at Function.Module._resolveFilename (pkg/prelude/bootstrap.js:1269:46)
    at Function.Module._load (module.js:464:25)
    at Module.require (module.js:577:17)
    at Module.require (pkg/prelude/bootstrap.js:1153:31)
    at require (internal/module.js:11:18)
    at /snapshot/html/config/configurator-file-api/node_modules/accepts/node_modules/negotiator/lib/negotiator.js:21:16
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/snapshot/html/config/configurator-file-api/node_modules/accepts/node_modules/negotiator/lib/negotiator.js:19:18)
    at Module._compile (pkg/prelude/bootstrap.js:1243:22)
    at Object.Module._extensions..js (module.js:644:10)
    at Module.load (module.js:552:32)
    at tryModuleLoad (module.js:495:12)
    at Function.Module._load (module.js:487:3)
    at Module.require (module.js:577:17)
    at Module.require (pkg/prelude/bootstrap.js:1153:31)

<强>解决方案

cd / var / html / config / configurator-file-api / node_modules / accepted /

npm uninstall negotiator --save

npm install negotiator --save

是的,它正在运作