这是我第一天做节点,我有一些问题,试图捆绑一些js文件。
MyFolder
|-- app (folder)
| |-- Collections (contains: movies.js)
| |-- Models (contains: movie.js)
| |-- node_modules
|-- main.js
|-- node_modules (folder)
|-- static (folder)
这是我想要压缩到static/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中的脚本创建的。
但是当我运行browserify -r ./app/collections/movies.js:movies \ -r ./app/models/movie.js:movie > static/bundle.js
时,它会创建一个空的bundle.js并显示如下:
Error: Cannot find module '/Users/MyFolder/app/models/movie.js:movie' from '/Users/MyFolder'
我的文件夹app/node_modules
与ln -sf ../models .
和ln -sf ../collections .
同步
**问题1:**有没有提示我做错了什么?
**问题2:**如果static/bundle.js
存在。再次运行browserify是否会覆盖该文件?在我的本地测试中,它不会覆盖,所以我应该在每次更新时删除该文件吗?
6条答案
按热度按时间kq0g1dla1#
可以考虑将
./
添加到路径中:参见:How to use browserify to bundle a backbone app?
a1o7rhls2#
对于来自搜索引擎的人:
这可能是因为您使用的是Mac,在需要该文件时没有使用正确的大小写。
这在mac中是等效的:
但不是以百分为单位。
kmb7vmvb3#
如果使用调试器并单步执行
require
调用,您会发现自己进入了一些缩小的代码(通常)。转到控制台并检查
t[o][1]
这将显示模块的正确路径列表。
如果这变得太混乱,暂时取消压缩您编译的
bundle.js
文件的第一行(我在PhpStorm中使用alt-cmd-l
),然后重试。igetnqfo4#
我也遇到过同样的错误,在我的例子中,这是因为如果文件没有直接在require中指定,Browserify就不会检测到它。
示例:
变更:
收件人:
wfsdck305#
我最近也遇到了同样的错误。我正在使用Gulp 4运行Browserify。
问题是我正在重新组织我的项目文件夹架构,我没有清空我捆绑的
.js
文件的目标(dist
)文件夹。在我清空那个文件夹(在我的例子中它被称为assets
)并运行Browserfy之后,它又正常工作了。pu82cl6c6#
就我而言,我取代了
到
它的工作。似乎Browserify不支持通过节点“路径”模块访问本地文件