C’est mon premier jour de travail sur le noeud; j’ai des problèmes pour essayer de regrouper des fichiers js.
MyFolder
|-- app (folder)
| |-- Collections (contains: movies.js)
| |-- Models (contains: movie.js)
| |-- node_modules
|-- main.js
|-- node_modules (folder)
|-- static (folder)
Ceci est le contenu des fichiers js que je veux compresser en static/bundle.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;
Lorsque je lance browserify -r ./app/main:app > static/bundle.js
, le fichier bundle.js est créé avec les scripts de app/main.js. Cela fonctionne comme prévu.
Mais quand je lance browserify -r ./app/collections/movies.js:movies \ -r ./app/models/movie.js:movie > static/bundle.js
, il crée un bundle.js vide et montre ceci:
Error: Cannot find module '/Users/MyFolder/app/models/movie.js:movie' from '/Users/MyFolder'
Mon dossier app/node_modules
est synchronisé avec ln -sf ../models .
et ln -sf ../collections .
Question 1: Avez-vous une idée de ce que je fais mal?
Question 2: Si static/bundle.js
existe. L'exécution de browserify écrase-t-elle le fichier ou non? Sur mes tests locaux, il ne remplace pas, suis-je supposé supprimer ce fichier à chaque fois pour une mise à jour?
Peut-être envisager d'ajouter ./
à votre chemin:
var Movie = require('./models/movie');
voir: Comment utiliser browserify pour regrouper une application dorsale?
Pour les personnes venant des moteurs de recherche:
Il se peut que vous utilisiez un Mac et que vous n’ayez pas utilisé la casse appropriée tout en exigeant le fichier.
Ceci est équivalent dans mac:
require('./someFile');
require('./somefile');
Mais pas en cento par exemple.
Si vous utilisez votre débogueur et que vous entrez dans l'appel require
, vous vous retrouverez dans un code minifié (généralement).
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require== ...
Allez sur votre console et inspectez t[o][1]
Cela vous montrera une liste des chemins corrects pour vos modules.
Object {
'<module name>' : <id>
...
}
Si cela devient trop déroutant, supprimez temporairement la première ligne de votre fichier bundle.js
compilé (j'utilise alt-cmd-l
dans PhpStorm) et réessayez.