Javascript 浏览我的系统中文件夹的路径

Javascript 浏览我的系统中文件夹的路径,javascript,node.js,browserify,Javascript,Node.js,Browserify,当我使用Browserify 3.30.2(Browserify file.js-o bundle.js)编译降价符号时,我得到如下结果: !function(e){if("object"==typeof exports...[function(_dereq_,module,exports){ },{}],2:[function(_dereq_,module,exports){ ... ... [on line 8000] : function (str, start, len) {

当我使用Browserify 3.30.2(
Browserify file.js-o bundle.js
)编译降价符号时,我得到如下结果:

!function(e){if("object"==typeof exports...[function(_dereq_,module,exports){

},{}],2:[function(_dereq_,module,exports){
...
...
[on line 8000] 
    : function (str, start, len) {
        if (start < 0) start = str.length + start;
        return str.substr(start, len);
    }
;

}).call(this,_dereq_("C:\\Users\\Me\\AppData\\Roaming\\npm\\node_modules\\browserify\\node_modules\\insert-module-globals\\node_modules\\process\\browser.js"))
},{"C:\\Users\\Me\\AppData\\Roaming\\npm\\node_modules\\browserify\\node_modules\\insert-module-globals\\node_modules\\process\\browser.js":11}],14:[function(_dereq_,module,exports){
module.exports=_dereq_(3)
},{}],15:[function(_dereq_,module,exports){
module.exports=_dereq_(4)
},{"./support/isBuffer":14,"C:\\Users\\ME\\AppData\\Roaming\\npm\\node_modules\\browserify\\node_modules\\insert-module-globals\\node_modules\\process\\browser.js":11,"inherits":10}],16:[function(_dereq_,module,exports){
var frep = _dereq_('frep');
var file = _dereq_('fs-utils');
var delims = _dereq_('delims');
var _ = _dereq_('lodash');
...

并运行
节点构建>bundle.js
。同样的问题。如果我将basedir值替换为for instancee
ihatebrowserify
则有一个未解决的错误。

我最好的猜测是,在某个地方,绝对路径中包含了一些模块

当我使用browserify时,它不会发生在我身上


事实上,这不仅仅是猜测

},{}],2:[function(_dereq_,module,exports){
...
...
}).call(this,_dereq_("C:\\Users\\Me\\AppData\\Roaming\\npm\\node_modules\\browserify\\node_modules\\insert-module-globals\\node_modules\\process\\browser.js"))
},{"C:\\Users\\Me\\AppData\\Roaming\\npm\\node_modules\\browserify\\node_modules\\insert-module-globals\\node_modules\\process\\browser.js":11}],14:[function(_dereq_,module,exports){
您有
\u dereq\(“C:\\Users\\Me\\AppData\\Roaming\\npm\\node\u modules\\browserify\\node\u modules\\insert modules globals\\node\u modules\\process\\browser.js”)
;因此,它必须包括该模块


如果将某个节点设置为全局(不知道在Windows上如何设置)以查看
C:\\Users\\Me\\AppData\\Roaming\\npm\\Node\u模块
,则可能不必包含完整路径,但我不能确定。

Browserify默认解析绝对路径。如果不想看到绝对路径,可以根据需要设置
options.basedir
。比如,

var browserify = require('browserify-middleware');
var b = browserify({'opts.basedir': './'});

差不多6个月后,我也看到了同样的问题。现在我找到了一个适合我的解决办法,其他人也可能从中受益

谷歌给了我这个问题报告:——它在“browserify shim”上报告了本地系统路径的披露,尽管据我所知这是一个“browserify”问题

这个问题提出了一个解决办法:

$ npm install -g intreq browser-pack browser-unpack
$ browserify example/main.js -t browserify-shim | browser-unpack | intreq | browser-pack
我已经对此进行了测试,并对结果感到满意。然而,我想更进一步,并将其集成到我的Gruntfile.js中。我发现、测试并让我感到高兴的解决方案是:

压缩browserify require路径以实现更好的缩小,即require('some/long/path')=>require(1)

要使用它,只需安装unpathify(
npm install--save dev unpathify
)并将其添加到构建中:

grunt.initConfig({
  browserify: {
    all: {
      files: {
        'build/all.js': ['some/file.js']
      }
    }
  },
  unpathify: {
    all: {
      src: ['build/all.js']
    }
  }
  // ...
}

今天我也意识到了这一点。事实证明,现在有一个布尔选项--full path解决了这个问题

例如:

browserify -o bundle.js --full-path=false index.js

[0]

不完全确定这是否是原始问题的答案,但我遇到了类似的问题。正在生成的捆绑js文件和外部sourcemap(使用exercist)包含指向我的系统上文件夹的绝对路径。在弄清楚原因后,头痛不已,似乎罪魁祸首是babelify(以前是6to5ify)

但解决方案很简单:

browserify--debug-t[babelify--sourceMapRelative.]

browserify({debug:true}) .transform(babelify.configure({sourceMapRelative:'.}))



Browserify的作者提供了一个新的Browserify插件。它叫。它将用数字索引替换文件夹路径。

您使用的是什么版本的browserify?这是
插入模块globals
模块中的一个错误。有一个拉动请求来修复它:@ssorallen thnal非常感谢你@Vinz243,你有没有这样做过(即没有本地路径泄漏到浏览器化的js中)?你现在问这个问题已经5个多月了,我得到了完全相同的症状,使用了所有东西的最新版本…:(不幸的是,没有。我做了其他方面的工作。谢谢!我将搜索如何做。您可能还希望将
过程
包直接包含在您的项目中。这样可以避免访问完整路径。它是否与sourcemaps相关?请帮助我,您能否告诉我如何在其他操作系统上执行(更改节点全局)操作?(我当然有窗户,但只是为了帮助)我应该在
你的\u路径中放置什么?
C:\\Users\\Me\\AppData\\Roaming\\npm\\node\u modules\`?
标记符号中放置browserify
?我在本地模块中放置browserify。啊,你已经声明了base dir。但是,在编辑之前我已经回答了你的问题。@HüseyinBabel我真的不明白你的意思。我在哪里在
build.js
第4行(
'opts.basedir':“./”
)中声明了base dir.?这不是你的意思吗?在
/index.js
中?如果我删除它,它就不起作用(例外)。如果我删除build.js,您已经声明了
opts.basedir
。我说过,当我回答您的问题时,您的问题上没有我不理解的编辑部分。我将
var browserify=require('browserify-middleware');var b=browserify({opts.basedir':'。/'));
。我应该删除
opts.basedir
?这会删除绝对路径,但现在我在bundle.js的顶部得到了
无法读取未定义的属性'addEventListener'。…:(@Unispaw听起来像是另一个问题。只有在添加
--full path=false
开关时才会出现吗?谢谢,但我没有使用babelify
browserify -o bundle.js --full-path=false index.js