Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Node.js

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 17:13 10-04-2013 | Исправлено: unreal666, 08:00 12-11-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто-нибудь пробовал скомпилить node.js на винде?
 
Пытаюсь сделать так:
- запускаю vcbuild.bat.
- потом запускаю постройку сгенеренного файла решений в VS 2010.
 
вылазит ошибка
"error C1083: Не удается открыть файл включение: node_natives.h: No such file or directory    node_javascript.cc"
посмотрел и вправду такой файл (node_natives.h) отсутствует. Что делать?
 
node.js v0.10.21

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 08:03 12-11-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666

Цитата:
кто-нибудь пробовал скомпилить node.js на винде?

зачем, если есть уже собранное все?
 

Цитата:
- потом запускаю постройку сгенеренного файла решений в VS 2010.  

у меня собрало все сразу, самостоятельно (если запускать в окружении от VS 2010)

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:34 12-11-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
зачем, если есть уже собранное все?

мне нужно кое-что изменить в исходных js-файлах для теста и скомпилить.
 
пытался делать как и описал:
- запустил vcbuild.bat для генерации файлов проектов/решения
- потом открыл решение node.sln в VS 2010 и попытался его построить
- выдало вышеуказанную ошибку, что отсутствует файл node_natives.h (он инклудится в node_javascript.cc)
- и его там на самом деле нет
 
Правда перед этой ошибкой еще была
 

Код:
Ошибка    1    error MSB6006: "cmd.exe" завершилась с кодом 1.    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets    151    6    node_js2c

 
и при открытии проекта VS выдал  

Код:
Возникла ошибка при создании или открытии файла базы данных просмотра C++ G:\Programming\Projects\Other\Node.JS\node.sdf. Сведения IntelliSense и просмотра не будут доступны для проектов C++.
 
Убедитесь, что выполнена установка Microsoft SQL Server Compact 3.5 и другие приложения не осуществляют доступ к данному файлу. В случае повторения этой проблемы удалите данный файл и откройте решение повторно.

 
чего в таком случае делать?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 15:22 14-11-2013 | Исправлено: unreal666, 15:23 14-11-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
я же написал, если запустить vbuild в среде VS (то есть в командной строке, в которую импортированы нужные переменные окружения), то собирается само до конца, без необходимости запуска VS

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:38 14-11-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
не понял.
Это в какой командной строке? Если которая из меню пуск - "Командная строка Visual Studio (2010)", то из нее я тоже делал. Один фиг.
На экране выводится только это:
 

Код:
Found ctrpp in WinSDK--will build generated files into tools/msvs/genfiles.
{ 'target_defaults': { 'cflags': [],
                       'default_configuration': 'Release',
                       'defines': [],
                       'include_dirs': [],
                       'libraries': []},
  'variables': { 'clang': 0,
                 'gcc_version': 46,
                 'host_arch': 'ia32',
                 'node_has_winsdk': 'true',
                 'node_install_npm': 'true',
                 'node_prefix': '',
                 'node_shared_cares': 'false',
                 'node_shared_http_parser': 'false',
                 'node_shared_libuv': 'false',
                 'node_shared_openssl': 'false',
                 'node_shared_v8': 'false',
                 'node_shared_zlib': 'false',
                 'node_tag': '',
                 'node_unsafe_optimizations': 0,
                 'node_use_dtrace': 'false',
                 'node_use_etw': 'true',
                 'node_use_openssl': 'true',
                 'node_use_perfctr': 'true',
                 'node_use_systemtap': 'false',
                 'python': 'D:\\Programs\\Programming\\Python(x_y)\\Python27\\python.exe',
                 'target_arch': 'ia32',
                 'v8_enable_gdbjit': 0,
                 'v8_no_strict_aliasing': 1,
                 'v8_use_snapshot': 'true'}}
creating  config.gypi
creating  config.mk

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 01:10 15-11-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666

Цитата:
то из нее я тоже делал. Один фиг

запускаю из командной строки среды Microsoft Visual Studio 2010 Express
у меня доходит до конца и создает  
   
но вопрос вообще не относится к вебпрограммингу.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:23 15-11-2013 | Исправлено: Cheery, 01:30 15-11-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ладно. тогда последний вопрос.
до компиляции у тебя присутствует файл node_natives.h?
если нет, то после компиляции он появляется?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 01:32 15-11-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666

Цитата:
то после компиляции он появляется?

он создается в процессе компиляции, так как появляется в Release\obj\global_intermediate
http://rghost.net/50179079

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:36 15-11-2013 | Исправлено: Cheery, 01:39 15-11-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
понятно. Дальше буду сам разбираться.
Сейчас быстренько по поиску по файлам пробежался. Походу его генерирует js2c.py, который в свою очередь запускается из node_js2c.vcxproj. И при построении этого проекта и вываливается 1-ая ошибка

Код:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" завершилась с кодом 1. [G:\Programming\Projects\Other\Node.JS\node_js2c.vcxproj]

поэтому node_natives.h не создается.
 
Позже буду разбираться, чего да как.
 
ЗЫ.
А из cmd он у меня оказывается не строился из-за того, что питон запускался как python.exe, а не просто python.
А у меня в путях есть только python.bat, который в свою очередь запускает python.exe
 

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 01:56 15-11-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
скомпилил. Оказывается какому-то проекту не понравились скобки в пути к python.exe

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 05:00 15-11-2013
Red Planet



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Читаю Professional Node.js: Building Javascript Based Scalable Software. Сделал сервер, отвечающий на любой запрос страницей Google. Можете оценить подход?
 

Код:
var request = require('request');
var url = 'http://www.google.de'; // input your URL here
 
// use a timeout value of 10 seconds
var timeoutInMilliseconds = 10 * 10000;
var opts = {
    url : url,
    timeout : timeoutInMilliseconds
};
 
require('http').createServer(function(req, res) {
 
    res.writeHead(200, {
        'Content-Type' : 'text/html'
    });
 
    request(opts, function(err, webRes, body) {
        if (err) {
            console.dir(err);
            return;
        }
        var statusCode = webRes.statusCode;
        console.log('status code: ' + statusCode);
        res.write(body);
    });
}).listen(4000);

Всего записей: 215 | Зарегистр. 18-06-2009 | Отправлено: 12:56 24-11-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите заюзать gulp + browserify + babelify.
 
Так то работает:

Код:
gulp.task('browserify', function() {
    return browserify(['./src/share/common.es6'], config.browserify)
        .transform(babelify)
        .bundle()
        // Передаем имя файла, который получим на выходе, vinyl-source-stream
        .pipe(source('bundle.js'))
        .pipe(gulp.dest('./build/'));
});

но мне нужно передавать в browserify не одиночные или массив файлов, а кучу es6-файлов, лежащих где угодно от корня сервера и каждый компилируется отдельно и складывается в другую папку, но с такой же иерархией.
 
т.е. типа  

Код:
var
    extensions = ['.js', '.es', '.es6', '.jsx'],
    config = {
        browserify: { extensions: extensions, basedir: require('path').resolve(".")},
        babelify: { extensions: extensions, stage: 0, },
    },
 
    gulp = require('gulp'),
    browserify = require('browserify'),
    babelify = require('babelify').configure(config.babelify),
    source = require('vinyl-source-stream');
 
module.exports = gulp;
 
gulp.task('browserify', function() {
    var src = gulp.src('./src/**/*.es6', {base: './src'});
 
    return browserify(src, config.browserify)
        .transform(babelify)
        .bundle()
        .pipe(source("хрен его знает"))
        .pipe(gulp.dest('./build'))
}

в таком варианте выкидывает ошибку

Цитата:
[19:41:15] Using gulpfile G:\www\site.ru\www\domains\site.ru\.dev\gulpfile.js
[19:41:15] Starting 'browserify'...
events.js:141
      throw er; // Unhandled 'error' event
      ^
 
SyntaxError: G:/www/site.ru/www/domains/site.ru/.dev/_stream_0.js: Unexpected token (1:8)
> 1 | [object Object],[object Object],[object Object]
    |         ^
    at Parser.pp.raise (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\location.js:24:13)
    at Parser.pp.unexpected (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\util.js:82:8)
    at Parser.pp.expect (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\util.js:76:33)
    at Parser.pp.parseExprList (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\expression.js:785:12)
    at Parser.pp.parseExprAtom (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\expression.js:387:28)
    at Parser.parseExprAtom (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\plugins\jsx\index.js:412:22)
    at Parser.pp.parseExprSubscripts (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\expression.js:236:19)
    at Parser.pp.parseMaybeUnary (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\expression.js:217:19)
    at Parser.pp.parseExprOps (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\expression.js:163:19)
    at Parser.pp.parseMaybeConditional (D:\Programs\Programming\nodejs\node_modules\babelify\node_modules\babel-core\node_modules\babylon\lib\parser\expression.js:145:19)

судя по стеку, спотыкается на babelify
 
Добавлено:
или просто нужно все эти es6-файлы собрать в массив и каждый элемент из него в цикле отдельно передавать в этот browserify ?
 
Добавлено:
хотя один фиг непонятно, почему в данном случае спотыкается babelify.

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 13:17 24-09-2015 | Исправлено: unreal666, 13:19 24-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
А так ?  
http://fettblog.eu/gulp-browserify-multiple-bundles/

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 00:01 25-09-2015
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
взял оттуда и немного переделал. Теперь работает

Код:
'use strict';
 
// console.log(global.process.mainModule.paths);
 
var
    extensions = ['.js', '.es', '.es6', '.jsx'],
    config = {
        browserify: { extensions: extensions, /*basedir: require('path').resolve("."), fullPaths: true*/ },
        babelify: { extensions: extensions, stage: 0, },
    },
    paths = {
        src: './src',
        dest: './build',
    };
 
var
    gulp = require('gulp'),
    rename = require('gulp-rename'),
    glob = require('glob'),
    es = require('event-stream'),
    source = require('vinyl-source-stream'),
    browserify = require('browserify'),
    babelify = require('babelify').configure(config.babelify);
 
gulp.task('default', ['browserify']);
 
gulp.task('browserify', function(cb) {
    return glob(paths.src + '/**/*.es6', function(err, files) {
        if (err) cb(err);
 
        var tasks = files.map(function(file) {
            return browserify([file], config.browserify)
                .transform(babelify)
                .bundle()
                .pipe(source(file.replace(paths.src, '.')))
                .pipe(rename({ extname: '.js' }))
                .pipe(gulp.dest(paths.dest));
        });
        es.merge(tasks).on('end', cb);
    });
});

только фигово, что при использовании модуля vinyl-source-stream нельзя указать базу, как в gulp.src. Пришлось делать это:

Код:
.pipe(source(file.replace(paths.src, '.')))

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 06:42 13-10-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Node.js


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru