2015-08-27 3 views
0

Я нашел эту статью, что переговоры о создании глобальных пакетов: https://bretkikehara.wordpress.com/2013/05/02/nodejs-creating-your-first-global-module/Создание глобального НОГО пакета

Так я получил бен значение, объявленное в моем package.json так:

"bin": { 
    "my-server": "./bin/start-server.js" 
    } 

И в start-server.js I имеют ссылку на ../server.js, и это то, что я запускаю, чтобы запустить мой экспресс-сервер. После того, как я сделаю npm install -g в моей папке проекта и запустил my-server, он работает отлично, однако, когда я выхожу из папки проекта и запускаю my-server, сервер, похоже, запускается, но ни один из моих таблиц стилей или javascript на стороне клиента не появляется.

В моем server.js файле я определяю эти пути, как это:

app.set('views', path.join(__dirname, '/public')); 
app.set('view engine', 'ejs'); 
app.use(express.static('public')); 

Есть другой способ, которым я должен устанавливать это таким образом, что независимо от того, где кто-то называет my-server от него правильный путь к таблицы стилей?

+0

ли вы пытаетесь использовать '__dirname +«/../server.js» '? Казалось бы, ваш код зависит от того, как pwd является модулем модуля. – Fluffy

+0

Вы имеете в виду внутри 'start-server.js'? Если это так, это не сработало. –

+0

Вы пытались fs.readFile? – Profstyle

ответ

0

Я понял ответ на этот вопрос. В моем файле server.js мне пришлось добавить __dirname в выражение express.static(). Так это то, что он выглядит следующим образом:

app.use(express.static(__dirname + '/public')); 

Это делает работу очень хорошо, так что я могу назвать my-server из любой точки после выполнения npm install -g

Смежные вопросы