npm 卸载依赖_npm卸载所有包
npm/cnpm/ng命令运行报错与解决汇总(持续更新中...)
npm :查看帮助命令。(1) cnpm : 无法加载文件 C:UsersliyAppDataRoaming
npm 卸载依赖_npm卸载所有包
npm 卸载依赖_npm卸载所有包
pmcnpm.ps1,因为在此系统上禁止运行脚本。
(2) The serve command requires to be run in an Angular project, but a project definition could not be found.
分析 :根据waring信息来看,应该是本地angular版本与全局angular版本(angular cli 默认安装版本)不一致导致的。解决方案为将本地和全局angular版本保持一致即可。
① 卸载项目当前的angular版本
② 清除缓存确保卸载干净(在低版本的nodejs里面清除缓存使用的命令是 npm cache clean)
③ 安装版本
④ 安装/更新依import React from 'react';赖
① 卸载当前全局版本
② 安装指定版本(waring中提示的版本,也可在项目配置文件中查看)
③ 安装/更新依赖
(3) You seem to not be depending on "@angular/core". This is an error.
解决 :运行 npm install 来安装或更新依赖
(4) Error: Cannot find module 'core-js/modules/es6.regexp.constructor'
或(5) npm WARN Local package.json exists, but node_modules missing, did you mean to install?
(6) npm installan安装依赖时报错,提醒 stack Error: Can't find Python executable "python", you can set the PYTHON env variable 且 node-sass@4.14.0 tinstall: `node scripts/build.js
解决:卸载当前node-sass版本,并重新安装指定的node-sass版本
vue项目运行时报错? Cannot find module 'neo-async' 怎么解决?新创建的项目运行也报这个错误。
webpack.config.js你执行npm install了吗?如果执行了,可能这个包的没有安装成功,可以单独尝试安装,执行:npm install neo-async@版本号,版本号在package.json里有,如果懒得看版本号就安装版,执行npm install neo-async@latest(版可能与其他包不兼容,所有建议和p编译ackage.json中保持一致)。另外install时,建议使用淘宝镜像,可以参考
如何使用 ES6 编写一个 React 模块,并且编译后发布到 NPM
]}]如果你在使用 React, 那么肯定已经撸了好多自己的组件, 并尝试着共享出来。在 OneAPM 前端开发过程中, 我们也曾遇到了一些组件共享的问题:
例如:
是通过 git 直接发布还是通过 NPM 发布 ?
发布的是 ES5 的代码还是 ES6 的代码 ?
如何解决 Babel5 和 Babel6 的冲突 ?
这篇文章会通过编写一个叫做 MyComponet 的例子来演示发布一个模块需要注意的地方, 并不涉及单元测试和代码规范等。
前端开发果真是发展迅猛,刚享受到由模块化,组件化和单元测试带来的种种好处,又得迅速拥抱 Grunt, Gulp, Browserify, Webpack 这类自动化工具的变革。除了工具和生态圈,JaScript 本身也在飞速发展着。ES2015(ES6) ,ES2016(ES7) ... 照这样的节奏,几乎是一年一个标准。标准多了,为解决兼容性的问题,竟也派生出了 源代码 和 编译 的概念。前端开发者通过语法糖、转化器、Polyfill 等,可以享受到标准乃至尚未定稿草案里的规范的便利,大幅提升开发效率。
至于这个模块本身,它的功能特别简单, 就是显示模块自身的的属性。
源代码
我们来编写组件 MyComponent.jsx ,放到项目的 src 目录下。
const MyComponent = props=> {
return
props:
{JSON.stringify(props, null, 2)}
}export default MyComponent;
关于各种文件放在哪里, 这里是我的一些约定:
src 下用于存放源代码
lib 是编译后的代码,这个目录只读
所有包含 ES6 语法的文件名统一后缀为 .es6
所有包含 JSX 语法的文件后统一缀名为 .jsx
设源代码里还有另外两个文件 foo.es6 和 bar.js,简化起见都丢到 src 的根目录下。
为了把 ES6 代码编译成 ES5,需要安装 Babel,这个工具可以说野心极大,一次编译可以让 JaScript 运行在所有地方。(听起来是不是有点 Ja 的作风)
目前最常用的是 Babel5 版本,但是 Babel6 版本的设计更为精巧,已经非常更新。也正是由于 Babel 有两个版本,所以开发过程中很有可能遇到这样的情况,
模块 A 的开发依赖于 Babel5 版本,而模块 B 依赖于 Babel6 版本。
解决这个问题的做法就是把 A 和 B 拆开,开发和发布。并且在发布到 NPM 的时候发布是的编译后的,也就是 ES5 版本的代码。
所以如果你的机器上的 babel 是全局安装的,是时候卸载它了,因为它的版本不是 5 就是 6 ,会导致一些不可预见的问题。
npm uninstall babel-cli --global
正确的安装方式是把 babel-cli 作为 dleopment 的依赖
npm install babel-cli --se-dev
使用的时候并不是直接调用全局的 Babel 而是调用依赖里的 Babel 可执行文件
./node_modules/.bin/babel
如果按照前文的约定来组织代码,src 目录结构看起来是这样的
src
├── bar.js
├── foo.es6
└── MyComponent.jsx
./node_modules/.bin/rimraf lib
./node_modules/.bin/babel src --copy-files --source-maps --extensions .es6,.es,.jsx --out-dir lib
输出目录的结构
lib
├── bar.js
├── foo.js
├── foo.js.map
├── MyComponent.js
└── MyComponent.js.map
具体解释一下各个命令的作用:
条命令 ./node_modules/.bin/rimraf lib
作用 编译前清空之前的 lib 目录,这是一个好习惯,可以杜 lib 下的文件的任何手动更改。
第二条命令
./node_modules/.bin/babel src --out-dir lib --source-maps --extensions .es6,.es,.jsx --copy-files
作用 遍历 src 目录下的文件,如果后缀名是 .es/.es6/.jsx 中的一种,就编译成 ES5,否则就直接拷贝到输出目录 lib 下
参数详解:
--out-dir lib 指定输出目录为 lib
--extensions .es6,.es,.jsx 指定需要编译的文件类型
--copy-files 对于不需要编译的文件直接拷贝
--source-maps 生成 souce-map 文件
编译过程中还隐含了一个步骤就是加载 .babelrc 文件里的配置,该文件内容如下
{"presets": [
"es2015",
"stage-0",
"react"
]}
这是因为 Babel6 采用了插件化的设计,做到了灵活配置:如果要转换 JSX 语法文件,就加上 react 的 preset,同时项目依赖里要添加
babel-preset-react
npm install babel-preset-react --se-dev
样例代码
开发和调试 React 模块目前用的打包工具还是 Webpack,在项目跟目录下,新建一个 example 目录:
example/index.html
example/src/index.jsx
import {render} from 'react-dom';
var element = document.createElement("div");
document.body.appendChild(element);
render(
var path = require('path');
module.exports = {
entry: path.join(__dirname, 'example', 'src', 'index.jsx'),
output: {
filename: 'bundle.js'
},
module: {
loaders: [{
test: /.jsx$/,
loader: 'babel',
include: [
},
contentBase: path.join(__dirname, 'example')
}}
./node_modules/.bin/webpack-dev-server
发布
发布前,还有一件事就是为你的模块添加一个入口文件 index.js
module.exports = require('./lib/MyComponent');
exports.default = require('./lib/MyComponent');
exports.foo = require('./lib/foo');
接下来就是发布到 path.join(__dirname, 'example')NPM 了。
npm publish
使用
别的开发者在使用你新发布的模块的时候可以这样导入
import MyComponent,{foo,bat} from 'react-component-example'
导入的直接是 ES5 代码,跳过编译从而避免了出现 Babel 版本不一致的问题,并且速度更快,是不是很棒!
不过设你的模块包含很多组件,开发者可能只想用其中的一个或某几个,这时可以这样导入:
import MyComponent from 'react-component-example/src/MyComponent.jsx'
导入的是 ES6 代码,并且会被加入父级项目的编译过程。
Vue用webpack搭建的项目遇到的disconnected问题
npm init:会你创建一个package.j运行样例代码son文件,包括名称、版本、作者这些信息等。我专门花了几天的时间研究了一下webpack这个目前来看比较热门的模块加载兼打包工具,发现上手并不是很容易,现将总结的一些有关配置的心得分享出来,欢迎大神来拍砖。。。
如何使用 ES6 编写一个 React 模块,并且编译后发布到 NPM
import MyComponent,{foo,bar} from '../../';如果你在使用 React, 那么肯定已经撸了好多自己的组件, 并尝试着共享出来。在 OneAPM 前端开发过程中, 我们也曾遇到了一些组件共享的问题:
例如:
是通过 git 直接发布还是通过 NPM 发布 ?
发布的是 ES5 的代码还是 ES6 的代码 ?
如何解决 Babel5 和 Babel6 的冲突 ?
这篇文章会通过编写一个叫做 MyComponet 的例子来演示发布一个模块需要注意的地方, 并不涉及单元测试和代码规范等。
前端开发果真是发展迅猛,刚享受到由模块化,组件化和单元测试带来的种种好处,又得迅速拥抱 Grunt, Gulp, Browserify, Webpack 这类自动化工具的变革。除了工具和生态圈,JaScript 本身也在飞速发展着。ES2015(ES6) ,ES2016(ES7) ... 照这样的节奏,几乎是一年一个标准。标准多了,为解决兼容性的问题,竟也派生出了 源代码 和 编译 的概念。前端开发者通过语法糖、转化器、Polyfill 等,可以享受到标准乃至尚未定稿草案里的规范的便利,大幅提升开发效率。
至于这个模块本身,它的功能特别简单, 就是显示模块自身的的属性。
源代码
我们来编写组件 MyComponent.jsx ,放到项目的 src 目录下。
const MyComponent = props=> {
return
props:
{JSON.stringify(props, null, 2)}
}export default MyComponent;
关于各种文件放在哪里, 这里是我的一些约定:
src 下用于存放源代码
lib 是编译后的代码,这个目录只读
所有包含 ES6 语法的文件名统一后缀为 .es6
所有包含 JSX 语法的文件后统一缀名为 .jsx
设源代码里还有另外两个文件 foo.es6 和 bar.js,简化起见都丢到 src 的根目录下。
为了把 ES6 代码编译成 ES5,需要安装 Babel,这个工具可以说野心极大,一次编译可以让 JaScript 运行在所有地方。(听起来是不是有点 Ja 的作风)
目前最常用的是 Babel5 版本,但是 Babel6 版本的设计更为精巧,已经非常更新。也正是由于 Babel 有两个版本,所以开发过程中很有可能遇到这样的情况,
模块 A 的开发依赖于 Babel5 版本,而模块 B 依赖于 Babel6 版本。
解决这个问题的做法就是把 A 和 B 拆开,开发和发布。并且在发布到 NPM 的时候发布是的编译后的,也就是 ES5 版本的代码。
所以如果你的机器上的 babel 是全局安装的,是时候卸载它了,因为它的版本不是 5 就是 6 ,会导致一些不可预见的问题。
npm uninstall babel-cli --global
正确的安装方式是把 babel-cli 作为 dleopment 的依赖
npm install babel-cli --se-dev
使用的时候并不是直接调用全局的 Babel 而是调用依赖里的 Babel 可执行文件
./node_modules/.bin/babel
如果按照前文的约定来组织代码,src 目录结构看起来是这样的
src
├── bar.js
├── foo.es6
└── MyComponent.jsx
./node_modules/.bin/rimraf lib
./node_modules/.bin/babel src --copy-files --source-maps --extensions .es6,.es,.jsx --out-dir lib
输出目录的结构
lib
├── bar.js
├── foo.js
├── foo.js.map
├── MyComponent.js
└── MyComponent.js.map
具体解释一下各个命令的作用:
条命令 ./node_modules/.bin/rimraf lib
作用 编译前清空之前的 lib 目录,这是一个好习惯,可以杜 lib 下的文件的任何手动更改。
第二条命令
./node_modules/.bin/babel src --out-dir lib --source-maps --extensions .es6,.es,.jsx --copy-files
作用 遍历 src 目录下的文件,如果后缀名是 .es/.es6/.jsx 中的一种,就编译成 ES5,否则就直接拷贝到输出目录 lib 下
参数详解:
--out-dir lib 指定输出目录为 lib
--extensions .es6,.es,.jsx 指定需要编译的文件类型
--copy-files 对于不需要编译的文件直接拷贝
--source-maps 生成 souce-map 文件
编译过程中还隐含了一个步骤就是加载 .babelrc 文件里的配置,该文件内容如下
{"presets": [
"es2015",
"stage-0",
"react"
]}
这是因为 Babel6 采用了插件化的设计,做到了灵活配置:如果要转换 JSX 语法文件,就加上 react 的 preset,同时项目依赖里要添加
babel-preset-react
npm install babel-preset-react --se-dev
样例代码
开发和调试 React 模块目前用的打包工具还是 Webpack,在项目跟目录下,新建一个 example 目录:
example/index.html
example/src/index.jsx
import {render} from 'react-dom';
var element = document.createElement("div");
document.body.appendChild(element);
render(
var path = require('path');
module.exports = {
entry: path.join(__dirname, 'example', 'src', 'index.jsx'),
output: {
filename: 'bundle.js'
},
module: {
loaders: [{
test: /.jsx$/,
loader: 'babel',
in模块所有的代码都在一个目录下,这样编译过程就简单多了,两条命令就可以完成clude: [
},
contentBase: path.join(__dirname, 'example')
}}
./node_modules/.bin/webpack-dev-server
发布
发布前,还有一件事就是为你的模块添加一个入口文件 index.js
module.exports = require('./lib/MyComponent');
exports.default = require('./lib/MyComponent');
exports.foo = require('./lib/foo');
接下来就是发布到 NPM 了。
npm publish
使用
别的开发者在使用你新发布的模块的时候可以这样导入
import MyComponent,{foo,bat} from 'react-component-example'
导入的直接是 ES5 代码,跳过编译从而避免了出现 Babel 版本不一致的问题,并且速度更快,是不是很棒!
不过设你的模块包含很多组件,开发者可能只想用其中的一个或某几个,这时可以这样导入:
import MyComponent from 'react-component-example/src/MyComponent.jsx'
导入的是 ES6 代码,并且会被加入父级项目的编译过程。
怎么在命令行中查看nodejs和npm的版本号
dev: {查看nodejs版本:node -v。
查或⑤ 查看版本看npm安装的版本:npm -v。
常用命令:
npm install moduleNames:安装Node模块。
安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。
npm view moduleNames:查看node模块的package.json文件夹。
注意事项:如果想要查看package.json文件夹下某个标签的内容,可以使用$npm view moduleName labelName。
npm list:查看当前目录下已安装的node包。
注意事项:Node模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中的node_modules下的内容。$ npm list parseable=true可以目录的形式来展现当前安装的所有node包。
npm view moudleName dependencies:查看包的依赖关系。
npm view moduleName reitory.:查看包的源文件地址。
npm view moduleName engines:查看包所依赖的Node的版本。
npm folders:查看npm使用的所有文件夹。
npm rebuild moduleName:用于更改包内容后进行重建。
npm outdated:检查包是否已经过时,此命令会列出所有已经过时的包,可以及时进行包的更新。
npm update moduleName:更新node模块。
npm uninstall moudleName:卸载node模块。
一个npm包是包含了package.json的文件夹,package.json描述了这个文件夹的结构。访问npm的json文件夹的方法如下:
$ npm json 此命令会以默认的方式打开一个网页,如果更改了默认打开程序则可能不会以网页的形式打开。
发布一个npm包的时候,需要检验某个包名是否已存在
$ npm search packageName。
npm root:查看当前包的安装路径;npm root -g:查看全局的包的安装路径。
cmd里输入
npm -v
node -v
就行
怎么在命令行中查看nodejs和npm的版本号
exports.bar = require('./lib/bar');查看nodejs版本:node -v。
查看npm安装的版本:npm -v。
常用命令:
npm install moduleNames:安装Node模块。
安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。
npm view moduleNames:查看node模块的package.json文件夹。
注意事项:如果想要查看package.json文件夹下某个标签的内容,可以使用$npm view moduleName labelName。
npm list:查看当前目录下已安装的node包。
注意事项:Node模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中的node_modules下的内容。$ npm list parseable=true可以目录的形式来展现当前安装的所有node包。
npm view moudleName dependencies:查看包的依赖关系。
npm view moduleName reitory.:查看包的源文件地址。
npm view moduleName engines:查看包所依赖的Node的版本。
npm folders:查看npm使用的所有文件夹。
npm rebuild moduleName:用于更改包内容后进行重建。
npm outdated:检查包是否已经过时,此命令会列出所有已经过时的包,可以及时进行包的更新。
npm update moduleName:更新node模块④ 查看版本。
npm uninstall moudleName:卸载node模块。
一个npm包是包含了package.json的文件夹,package.json描述了这个文件夹的结构。访问npm的json文件夹的方法如下:
$ npm json 此命令会以默认的方式打开一个网页,如果更改了默认打开程序则可能不会以网页的形式打开。
发布一个npm包的时候,需要检验某个包名是否已存在
$ npm search packageName。
npm root:查看当前包的安装路径;npm root -g:查看全局的包的安装路径。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。