我可以使用单个全局安装的包执行两个Livescript(Coffeescript-fork)应用程序吗?

时间:2014-11-26 23:10:02

标签: package npm livescript

我正在运行一个使用LiveScript构建的应用程序,它是Coffeescript的一个分支。

您可以使用lsc命令执行文件,即

$ lsc app.ls

但是,在最近的更新中,需要更改模块的方式,即

require!{ module : \directory }

现在已成为

require!{ \directory : module}

这会泄漏我应用中的重大变化。我已将全局安装的LiveScript软件包更新到1.3+,并更新了require语法,但现在当我尝试使用旧的require语法运行旧应用程序时,应用程序中断,我需要重新安装全局安装的LiveScript软件包才能使其工作

无论如何从同一命令行运行版本< = 1.2模块和1.3+模块?或者我是否需要每次都在全球范围内重新安装软件包?

1 个答案:

答案 0 :(得分:1)

我只能建议不要使用全局安装。它本身很糟糕,在这种情况下绝对不可用。

我将向您展示如何安装和使用文件夹中隔离的多个版本的LiveScript。

[ls]$ mkdir old_version && cd old_version

[old_version]$ npm view LiveScript versions  

['0.9.0', '0.9.1', '0.9.2', '0.9.3', '0.9.4', '0.9.5-b', '0.9.5-c', '0.9.5', '0.9.6', '0.9.7', '0.9.8-b', '0.9.8-c', '0.9.8', '0.9.9', '0.9.10', '0.9.11-b', '0.9.11', '0.9.12', '1.0.0', '1.0.1', '1.1.0', '1.1.1', '1.2.0', '1.3.0', '1.3.1']

[old_version]$ npm install LiveScript@1.2.0
LiveScript@1.2.0 node_modules/LiveScript
└── prelude-ls@1.0.3

[old_version]$ cd ..

[ls]$ mkdir new_version && cd new_version

[new_version]$ npm install LiveScript
LiveScript@1.3.1 node_modules/LiveScript
├── prelude-ls@1.1.1
└── optionator@0.4.0 (type-check@0.3.1, deep-is@0.1.3, levn@0.2.5, wordwrap@0.0.2, fast-levenshtein@1.0.4)

[new_version]$ cd ..

[ls]$ old_version/node_modules/.bin/lsc
LiveScript 1.2.0 - use 'lsc --help' for more information
ls> 

[ls]$ new_version/node_modules/.bin/lsc
LiveScript 1.3.1 - use 'lsc --help' for more information
ls> 

[ls]$ tree -a -L 4
.
├── new_version
│   └── node_modules
│       ├── .bin
│       │   └── lsc -> ../LiveScript/bin/lsc
│       └── LiveScript
│           ├── bin
│           ├── lib
│           ├── LICENSE
│           ├── node_modules
│           ├── package.json
│           └── README.md
└── old_version
    └── node_modules
        ├── .bin
        │   ├── livescript -> ../LiveScript/bin/livescript
        │   ├── lsc -> ../LiveScript/bin/lsc
        │   └── slake -> ../LiveScript/bin/slake
        └── LiveScript
            ├── bin
            ├── lib
            ├── LICENSE
            ├── node_modules
            ├── package.json
            └── README.md

应该可以在全局安装一个版本,也可以安装一个版本。