Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

启动调试时,package.json 中没有依赖信息时会报错 #24

Open
afc163 opened this issue Jan 28, 2015 · 10 comments
Open

启动调试时,package.json 中没有依赖信息时会报错 #24

afc163 opened this issue Jan 28, 2015 · 10 comments

Comments

@afc163
Copy link
Member

afc163 commented Jan 28, 2015

比较理想的情况是,spm install 到目录里的模块文件可以通过 require('moment') 直接进行调用,spm-server 直接返回版本最新的模块。

现在如果没有依赖信息,则会报错。

@sorrycc
Copy link
Member

sorrycc commented Jan 28, 2015

和 build 一样,server 也是先通过 father 分析包再进行处理的。所以没有 package 里没有依赖信息,则报错。

要不把 spm install 默认加上 --save 吧,因为不 save 在 spm 是里用不了的,不像 node 。

@afc163
Copy link
Member Author

afc163 commented Jan 28, 2015

我是想做类似之前的 bin.spmjs.io 的效果,就是如果没有 package.spm.dependencies 时,文件里的 require 就是版本 * 的效果。这样可以直接:

$ spm install moment
// index.js
require('moment');
$ spm-server // 直接可以调试 index.js
$ spm build index.js // 直接构建

@afc163
Copy link
Member Author

afc163 commented Jan 28, 2015

--save 不应该是必须的。

@afc163
Copy link
Member Author

afc163 commented Jan 28, 2015

我写了一篇文章(地址旺旺给你了),过程中的 package.json 是比较恶心的。

其实也包括 spm-server 时里面需要有构建参数才能跑通。看看怎么把这个流程给简化一下。

@afc163
Copy link
Member Author

afc163 commented Jan 28, 2015

主要有三个问题:

  1. spm install --save 时不会新建 package.json 。spm install --save 时新建 package.json spm#1183
  2. 启动 spm-server 调试时,需要在 package.json 里加 "buildArgs": "--include standalone" 才能直接引用 index.js(不加的话就是 CMD 了)。所以文章里我把调试的步骤给省去了。
  3. package.json 里没有 dependencies 时(但是 spm_modules 下有模块),spm buildspm-server 都会找不到依赖而报错。

@sorrycc
Copy link
Member

sorrycc commented Jan 28, 2015

  1. 感觉还是要推默认 standalone,默认 cmd 在使用和推广上都存在不便。aspm 可以保留默认 cmd,解决历史问题
  2. father 解析可以考虑改成和 node 一致,取 spm_modules 下的而非 package.json 里的 (@popomore 看下可行性? )

@afc163
Copy link
Member Author

afc163 commented Jan 28, 2015

  1. 默认推 standalone 没问题。但现阶段能否动态识别是 seajs.use 引入还是手动 script 引入?或者 spm-server 默认是 standalone ,spm-server --sea 才是 CMD 。
  2. 有 package.json 存在的情况下用里面的版本信息,没有的时候默认为 *

@sorrycc
Copy link
Member

sorrycc commented Jan 28, 2015

server 默认 standalone 的话,build 也要默认 standalone 啊,不一致的话会比较奇怪

@afc163
Copy link
Member Author

afc163 commented Jan 28, 2015

有道理。

看来可以统一默认为 standalone 的方式,甚至把 CMD 的构建彻底从 spm-build 拆出来,用自定义构建的方式来做。

@xuhuan
Copy link

xuhuan commented Jan 29, 2015

把cmd构建从spm-build拆出来的话能否新开个大版本号的spm-build?要不然现有的已经基于spm-build对cmd进行构建的方式全部要改。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants