试图捆绑许多js文件时,Browserify无法find模块
这是我第一天做节点,我有一些问题,试图捆绑一些js文件。
MyFolder |-- app (folder) | |-- Collections (contains: movies.js) | |-- Models (contains: movie.js) | |-- node_modules |-- main.js |-- node_modules (folder) |-- static (folder)
这是我想要压缩到静态/ bundle.js的js文件的内容
// app/models/movie.js var Backbone = require("backbone"); var Movie = Backbone.Model.extend({ defaults: { title: "default", year: 0, description: "empty", selected: false } }); module.exports = Movie; // app/collections/movies.js var Backbone = require("backbone"); var Movie = require('models/movie'); var Movies = Backbone.Collection.extend({ model: Movie }); module.exports = Movies;
当我运行browserify -r ./app/main:app > static/bundle.js
,文件bundle.js是使用app / main.js中的脚本创build的。 它按预期工作。
但是当我运行browserify -r ./app/collections/movies.js:movies \ -r ./app/models/movie.js:movie > static/bundle.js
,它会创build一个空的bundle.js并显示:
Error: Cannot find module '/Users/MyFolder/app/models/movie.js:movie' from '/Users/MyFolder'
我的文件夹app/node_modules
与ln -sf ../models .
同步ln -sf ../models .
和ln -sf ../collections .
问题1:任何暗示我做错了什么?
问题2:如果存在static/bundle.js
。 再次运行browserify是否覆盖文件? 在我的本地testing中,它不覆盖,所以我应该每次删除这个文件的更新?
可能考虑join./
到你的path:
var Movie = require('./models/movie');
请参阅: 如何使用browserify捆绑骨干应用程序?
对于来自search引擎的用户:
这可能是因为你正在使用一个mac,而你在使用这个文件时没有使用正确的大小写。
这在mac中是等效的:
require('./someFile'); require('./somefile');
但不是以centO为例。
如果你使用你的debugging器,并进入require
调用,你会发现自己在一些缩小的代码(通常)。
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require== ...
转到您的控制台并检查t[o][1]
这将向您显示您的模块的正确path的列表。
Object { '<module name>' : <id> ... }
如果这变得太混乱,请暂时取消编译的bundle.js
文件中的第一行(我在PhpStorm中使用alt-cmd-l
) bundle.js
试。