2016-03-27 3 views
0

Я пытаюсь создать серверную часть типа скрипта (пример кода import mongoose from 'mongoose'; ), и я знаю, что я должен сначала инициализировать systemjs, но я не знаю, как это делается на скрипте на стороне сервера.Как исправить «ReferenceError: System is not defined» при запуске скрипта из командной строки?

tsconfig.json

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "noImplicitAny": true, 
    "removeComments": true, 
    "preserveConstEnums": true, 
    "sourceMap": true 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 

ответ

0

Если вы хотите использовать модуль «системы» на стороне сервера - вы должны будете установить systemjs пакет и настроить его:

import System = require('systemjs'); 

System.config({ 
    ... 
}); 

System.import(...); 

Но на мой взгляд, это было бы лучше ориентироваться на commonjs и запускать его «изначально» в node.js без каких-либо дополнительных зависимостей.

В качестве бонуса вы также можете запустить модуль commonjs в браузере, используя systemjs в качестве загрузчика - он поддерживает их загрузку из коробки.

[EDIT]

Обратите внимание, что node.js построен с CommonJS как стандартный модуль. Поэтому вы можете использовать модули «system» с помощью SystemJS, но только «внутри» вашей основной программы, которая должна быть в формате commonjs, чтобы иметь возможность запускать в nodejs.

+0

Я «думаю» Я знаю, что вы пытаетесь мне сказать, и я даже очень ценю ваше мнение по поводу просто демпинга systemjs на стороне сервера, но у меня проблема, которая все еще пытается просто «попробуйте» с помощью systemjs. Используя код в моем файле .ts, я получаю «Не могу найти имя« require ». – chrisp

+0

похоже, что вам не хватает определений node.js, которые включают в себя требование. Попробуйте добавить следующую строку в файл typings.json:' "node": «github: DefinitelyTyped/DefinitelyTyped/node/node.d.ts» 'и запускает' typings install' – Amid

+0

Если я использую 'import System = require ('systemjs')' компиляция успешно завершена ... Есть ли разница? В любом случае, Я все еще получаю 'System not defined', когда' node myscript.js' – chrisp

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