似乎npm install --prefix ./server
(没有args)不能使用--prefix
标志。我只想安装package.json中的所有包。
我得到的所有命令都是:
npm WARN enoent ENOENT:没有这样的文件或目录,打开 '/家庭/.../项目名/服务器/的package.json'
当我以npm install package_name -S --prefix ./server
为例时,一切都很好。然后,NPM将在node_modules
中创建server
并添加package_name
个包。
我的文件结构是:
ProjectName
|
+-- client
| +-- node_modules
| +-- package.json
+-- server
| +-- node_modules
+-- package.json
“Main”package.json
包含所有脚本(对于Heroku和我而言)和服务器的依赖性。
client
是Angular2应用程序,这就是它拥有自己的node_modules和package.json的原因。
我使用NPM 4.2.0。对于5.0.3版(最新版本?),似乎--prefix
标志根本不起作用。
编辑#1
我刚刚发现我可以使用npm install
(将在我的项目文件夹中安装node_modules
)解决我的问题,然后将node_modules
复制到server/node_modules
。如果没有该副本,jasmine
会在tsc
构建期间抛出错误。
现在我必须在主目录中包含node_modules
并在server
中复制它们。那真奇怪......
编辑#2
根据@Damian Lattenero
回答:
npm --prefix ./server install ./ProjectName/package.json
或
npm --prefix ProjectName / server install ./ProjectName/package.json
不工作并生成:
npm ERR!代码ENOLOCAL npm ERR!无法安装 “RecursiveNotebook3 / package.json”因为它不是目录而不是 名称以.tgz,.tar.gz或.tar
结尾的文件
这项工作:
npm --prefix ProjectName / server install ./ProjectName
但生成:
npm WARN saveError ENOENT:没有这样的文件或目录,打开 '/home/tb/Projects/RecursiveNotebook3/server/package.json'npm notice 创建了一个lockfile作为package-lock.json。你应该提交这个文件。 npm WARN enoent ENOENT:没有这样的文件或目录,打开'/ home / TB /项目/ RecursiveNotebook3 /服务器/的package.json'
和
package-lock.json
旁边的 node_modules
和
etc
node_modules
目录
和
使用mongodb软件包构建(tsc -p server
)存在一些问题。
答案 0 :(得分:2)
尝试:
<activity android:name=".main.SettingsActivity"
android:configChanges="orientation|screenSize"
android:theme="@style/PreferenceThemeOverlay.v14.Material">
</activity>
或
npm --prefix ./server install ./ProjectName/package.json
另外,为了更好地理解--prefix的作用,你可以检查这两个答案:
How to npm install to a specified directory?
npm - install dependencies for a package in a different folder?
答案 1 :(得分:1)
运行最新版本的Ubuntu(Ubuntu 16.04.2 LTS),我遇到了与npm install
相同的问题。我还遇到ENOENT
错误,表示npm
找不到必要的文件。
当我安装nodejs-legacy
时,如下所示:
sudo apt-get install nodejs-legacy
npm
随后编译得很好,我的Angular应用程序按原样部署。
答案 2 :(得分:0)
解
package.json
中的那些行解决了我的所有问题:
&#34;脚本&#34;:{
"init": "npm i && mv ./node_modules ./server && sudo npm i typescript -g",
奇怪但有效......
答案 3 :(得分:0)
我的服务器package.json的这部分工作正常:
"scripts": {
"start": "node dist/app.js",
"server": "nodemon --exec ts-node src/app.ts",
"build": "tsc -p .",
"client": "npm start --prefix ../client",
"client:install": "npm install --prefix ../client",
"client:build": "npm run build --prefix ../client",
"dev": "concurrently \"npm run server\" \"npm run client\""
},
答案 4 :(得分:0)
试试这个肯定行得通,我假设您的项目根目录 package.json
也有依赖项。
npm install && npm install --prefix ./server && npm install --prefix ./client
或使用此脚本
"scripts": {
"client-install": "npm install --prefix ./client",
"install-all": "npm install && npm run client-install && npm run server-install",
"server-install": "npm install --prefix ./server",
},
答案 5 :(得分:-1)
为我工作
npm install --prefix ./server ./server