Javascript 使用browserify时,在生产中需要缩小版本,但在开发中需要调试的推荐方法是什么?
我刚刚开始研究browserify,我想知道在为生产构建依赖项时需要最小版本的依赖项,在为开发构建依赖项时需要调试版本的推荐方法是什么 例如,我在这里学习了教程,并最终获得了以下文件: js\main.jsJavascript 使用browserify时,在生产中需要缩小版本,但在开发中需要调试的推荐方法是什么?,javascript,browserify,Javascript,Browserify,我刚刚开始研究browserify,我想知道在为生产构建依赖项时需要最小版本的依赖项,在为开发构建依赖项时需要调试版本的推荐方法是什么 例如,我在这里学习了教程,并最终获得了以下文件: js\main.js var names = require('./names.js'), findSuperman = require('./findsuperman.js'); if (findSuperman(names())) { document.write('We found Sup
var names = require('./names.js'),
findSuperman = require('./findsuperman.js');
if (findSuperman(names())) {
document.write('We found Superman');
} else {
document.write('No Superman...');
}
module.exports = function () {
return ['Barry Allen', 'Hal Jordan', 'Kara Kent', 'Diana Prince', 'Ray Palmer', 'Oliver Queen', 'Bruce Wayne', 'Wally West', 'John Jones', 'Kyle Rayner', 'Arthur Curry', 'Clark Kent'];
}
var _ = require('underscore');
module.exports = function (values) {
var foundSuperman = false;
_.find(values, function (name) {
if (name === 'Clark Kent') {
console.log('It\'s Superman!');
foundSuperman = true;
} else {
console.log('... No superman!');
}
});
return foundSuperman;
}
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-browserify');
grunt.registerTask('default', ['browserify', 'watch']);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
browserify: {
main: {
options: {
browserifyOptions: {
debug: true
}
},
src: 'js/main.js',
dest: 'js/findem.js'
}
},
watch: {
files: 'js/*',
tasks: ['default']
}
});
}
js\names.js
var names = require('./names.js'),
findSuperman = require('./findsuperman.js');
if (findSuperman(names())) {
document.write('We found Superman');
} else {
document.write('No Superman...');
}
module.exports = function () {
return ['Barry Allen', 'Hal Jordan', 'Kara Kent', 'Diana Prince', 'Ray Palmer', 'Oliver Queen', 'Bruce Wayne', 'Wally West', 'John Jones', 'Kyle Rayner', 'Arthur Curry', 'Clark Kent'];
}
var _ = require('underscore');
module.exports = function (values) {
var foundSuperman = false;
_.find(values, function (name) {
if (name === 'Clark Kent') {
console.log('It\'s Superman!');
foundSuperman = true;
} else {
console.log('... No superman!');
}
});
return foundSuperman;
}
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-browserify');
grunt.registerTask('default', ['browserify', 'watch']);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
browserify: {
main: {
options: {
browserifyOptions: {
debug: true
}
},
src: 'js/main.js',
dest: 'js/findem.js'
}
},
watch: {
files: 'js/*',
tasks: ['default']
}
});
}
js\findsuperman.js
var names = require('./names.js'),
findSuperman = require('./findsuperman.js');
if (findSuperman(names())) {
document.write('We found Superman');
} else {
document.write('No Superman...');
}
module.exports = function () {
return ['Barry Allen', 'Hal Jordan', 'Kara Kent', 'Diana Prince', 'Ray Palmer', 'Oliver Queen', 'Bruce Wayne', 'Wally West', 'John Jones', 'Kyle Rayner', 'Arthur Curry', 'Clark Kent'];
}
var _ = require('underscore');
module.exports = function (values) {
var foundSuperman = false;
_.find(values, function (name) {
if (name === 'Clark Kent') {
console.log('It\'s Superman!');
foundSuperman = true;
} else {
console.log('... No superman!');
}
});
return foundSuperman;
}
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-browserify');
grunt.registerTask('default', ['browserify', 'watch']);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
browserify: {
main: {
options: {
browserifyOptions: {
debug: true
}
},
src: 'js/main.js',
dest: 'js/findem.js'
}
},
watch: {
files: 'js/*',
tasks: ['default']
}
});
}
index.html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Find Superman</title>
</head>
<body>
<script src="js/findem.js"></script>
</body>
</html>
grunfile.js
var names = require('./names.js'),
findSuperman = require('./findsuperman.js');
if (findSuperman(names())) {
document.write('We found Superman');
} else {
document.write('No Superman...');
}
module.exports = function () {
return ['Barry Allen', 'Hal Jordan', 'Kara Kent', 'Diana Prince', 'Ray Palmer', 'Oliver Queen', 'Bruce Wayne', 'Wally West', 'John Jones', 'Kyle Rayner', 'Arthur Curry', 'Clark Kent'];
}
var _ = require('underscore');
module.exports = function (values) {
var foundSuperman = false;
_.find(values, function (name) {
if (name === 'Clark Kent') {
console.log('It\'s Superman!');
foundSuperman = true;
} else {
console.log('... No superman!');
}
});
return foundSuperman;
}
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-browserify');
grunt.registerTask('default', ['browserify', 'watch']);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
browserify: {
main: {
options: {
browserifyOptions: {
debug: true
}
},
src: 'js/main.js',
dest: 'js/findem.js'
}
},
watch: {
files: 'js/*',
tasks: ['default']
}
});
}
运行npm run grunt
将创建js/findem.js,其中包括下划线包的调试版本(并启动监视程序)
但是我也希望有js/findem-min.js——用于生产的最小版本,它应该包括下划线包的最小版本
这里有几件事我需要了解。事实上:
require('下划线')
映射到调试版本。似乎没有require('下划线-min')
。似乎必须求助于require('下划线/下划线-min.js')
。我说得对吗我想知道我是否正确理解第1项和第3项,但我没有第2项的答案。推荐的方法是什么(如果您愿意,最好的做法是什么)?我可能也弄错了第1项和第3项,所以如果我弄错了,请纠正我。我已经多年没有使用browserify了。现在大多数人都使用网页包。也就是说,从grunt传递到Browserify的参数将控制输出。“run”命令通常映射到debug。将有一个单独的命令来构建生产文件 对于#1,您将只希望编写require(“下划线”)。由模块绑定器(browserify/webpack/etc)重写/处理。如果要引用特定文件,请在文件中包含.js。如果从项目外部引用模块(如下划线),请不要包含它 对于#2,Browserify的文档非常糟糕。由于Webpack在这里的工作方式基本相同,阅读他们的resolve文档可能会帮助您了解这一点 对于#3,这是正确的。HTML需要引用不同的.js文件,具体取决于您是否处于prod/debug中。如果需要静态输出,可以使用两个文件对其进行硬编码。但在大多数情况下,是的,您通常会选择一个env变量。其他情况可能是为旧浏览器提供遗留的.js文件,等等
祝你好运(并切换到webpack:)我也甩了browserify。有一次,我看到没有人对此做出反应。